2016-07-18 2 views
0

У меня есть код, который использует $ _GET для получения [id], id - номер страницы, на которую я звоню.Неопределенные переменные, выполнение PHP не показано

Итак, у меня есть список страниц (загруженных из MySQLi), я слежу за учебником, и что должно произойти: когда клика по почте в списке сообщений, текстовые поля Title, Label и Body заполните содержимое, которое находится внутри этого сообщения.

Это мой код:

<?php if(isset($_GET['id'])) 
      { 

       $q= "SELECT * FROM pages WHERE id = $_GET[id]"; 
       $r= mysqli_query($mysql, $q); 

      } 
       $opened = mysqli_fetch_assoc($r);     
    ?> 

Это дает ошибку Undefined Variable: открыт. Официальные моды на GitHub (моды для проекта, я основывая свою работу на) дала мне этот код:

<?php 
if(isset($_GET['id'])&&is_numeric($_GET['id'])){ 
    $q= "SELECT * FROM pages WHERE id = $_GET[id]"; 
    $r= mysqli_query($mysql, $q); 
    $opened = mysqli_fetch_assoc($r);  
}else{ 
    $opened = null; 
}    
?> 

Но когда я использую его я получаю пустые поля, ничего не заполняется.

Помогите, пожалуйста?

+0

Учебник: https://www.youtube.com/watch?v=tpxO60o_D2Y – MJAzura

+0

Вы можете попробовать поиск неисправностей с помощью [ 'mysqli_error'] (http://php.net/ ручной/EN/mysqli.error.php). – showdev

+0

Просто добавьте '} else { $ open = null;' piece. Или добавьте '$ open = null;' перед 'if'. – AbraCadaver

ответ

0

Вы пробовали отладку в инструкции if? Чтобы проверить, выполнены ли операторы внутри блока?

Попробуйте это:

echo '<pre>'; 
print_r($_GET); // Check what you get here 

if (isset($_GET['id']) && is_numeric($_GET['id'])) { 
    $q = "SELECT * FROM pages WHERE id = ".$_GET['id']; 
    $r = mysqli_query($mysql, $q) or die(mysqli_error($q)); // Check if you get something here 
    $opened = mysqli_fetch_assoc($r); 
    echo '<pre>'; 
    print_r($opened);  // Check your fetched data 
} else { 
    $opened = null; 
    var_dump($opened);  // Check your $opened value 
}    
+0

[SQL Injection much?] (Http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) – Machavity

+0

Спасибо за ответ, в результате я получил «NULL». – MJAzura

+0

@Machavity: Да, вы правы. Я просто пытался указать, где они ошибались логически, что является самым предварительным шагом. Вы всегда можете укрепить техническую мудрость, как только ваша логика станет ясной. –

Смежные вопросы