2014-07-15 4 views
0

В моем коде, он должен быть вторя «Testing Post», поскольку это запись с ID 1 (я на странице blog.php?ID=1)Не отражая данные из таблицы?

Вот мой код, он ничего не вторя; просто пустые divs. (Обратите внимание, что соединение работает нормально, и никаких ошибок не показаны)

$ID = (int) $_GET["ID"];  
$getPost = mysql_query("SELECT * FROM Blogs WHERE ID='$ID'"); 
$gP = mysql_fetch_object($getPost); 
echo" 
<h1 id='PostTitle'>", $gP->Title,"</h1><br /> 
<p id='PostContent'></p>"; 
+1

'$ ID = (int) $ _GET [" ID "];' <- намного проще, чище и эффективнее –

+3

Что вы видите, когда вы 'var_dump ($ gP);'? – oliakaoil

+0

var_dump возвращает bool (false) – user3786876

ответ

0

Вам необходимо выполнить некоторые проверки, чтобы избежать SQL инъекций и Undefined index предупреждения.

if (isset($_GET['ID']) && is_int($_GET['ID'])) 
{ 
    $id = $_GET['ID']; 

    $query = mysql_query("SELECT * FROM Blogs WHERE `ID`={$id}"); 
    if (false !== ($result = mysql_fetch_object($query))) 
    { 
     echo '<h1 id="PostTitle">' . $result->Title . '</h1><br />'. 
      '<p id="PostContent"></p>'; 
    } 
} 

Во всяком случае, вы должны стараться избегать использования mysql_ * методы, как это рекомендуется в PHP> = 5.5.

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