2016-01-08 5 views
0

У меня есть сайт с этим фрагмент кода:

<?php 
mysql_connect('localhost','root','password'); 
mysql_select_db('news'); 
$id_article = $_GET['newsid']; 
$query = mysql_query('SELECT * FROM news WHERE id="$id_article"'); 
{ 
    echo '<div class="item"><h1><a href="read-news.php?newsid='.$query['id'].'">'.$query['subject'].'</a></h1><br />'; 
    echo $query['full_content'].'<br/>'; 
    echo date('D-M-Y', $query['date']).'<br/>'; 
    echo 'Posted by '.$id_article; 
    echo '</div>'; 
} 
?> 

$id_article получает идентификатор из предыдущего запроса. $id_article работает, но $query нет. $query['***'] еще пустое место. Я не знаю почему. Пожалуйста, помогите мне! Большое спасибо!

ответ

0

Вы не получите результата запроса. Используйте, как показано ниже:

<?php 
    mysql_connect('localhost','root','password'); 
    mysql_select_db('news'); 
    $id_article = intval($_GET['newsid']); 
    $query = mysql_query('SELECT * FROM news WHERE id=' . $id_article); 

    if (mysql_num_rows($query) > 0) 
    { 
     $row = mysql_fetch_assoc($query); 

     echo '<div class="item"><h1><a href="read-news.php?newsid='.$row['id'].'">'.$row['subject'].'</a></h1><br />'; 
     echo $row['full_content'].'<br/>'; 
     echo date('D-M-Y', $row['date']).'<br/>'; 
     echo 'Posted by '.$id_article; 
     echo '</div>'; 
    } 
?> 

Совет: используйте PDO или mysqli вместо функций mysql_! Функции Mysql_ устарели/не поддерживаются в новых версиях php!

Далее, санатизируйте свой вход, прежде чем переходить к вашему запросу!

+0

Вы решили мою проблему! Большое спасибо! – Kigris

+0

Ницца! Пожалуйста, отметьте правильный ответ @Kigris – schellingerht

+0

Что случилось с вводом? – Kigris

0

Используйте как этот

$result = mysql_query($query) or die(mysql_error()); 
$row = mysql_fetch_array($result) or die(mysql_error()); 
echo $row['id']. " - ". $row['date']; 
0

Вы не использовали mysql_fetch_assoc. Используйте, как показано ниже:

$query = mysql_query('SELECT * FROM news WHERE id=' . $id_article); 
$row = mysql_fetch_assoc($query); 
if(count($row)>0) 
{ 
    echo '<div class="item"><h1><a href="read-news.php?newsid='.$query['id'].'">'.$row['subject'].'</a></h1><br />'; 
    echo $row['full_content'].'<br/>'; 
    echo date('D-M-Y', $row['date']).'<br/>'; 
    echo 'Posted by '.$id_article; 
    echo '</div>'; 
} 
0

изменить этот код

$query = mysql_query('SELECT * FROM news WHERE id="$id_article"'); 
{ 
    echo '<div class="item"><h1><a href="read-news.php?newsid='.$query['id'].'">'.$query['subject'].'</a></h1><br />'; 
    echo $query['full_content'].'<br/>'; 
    echo date('D-M-Y', $query['date']).'<br/>'; 
    echo 'Posted by '.$id_article; 
    echo '</div>'; 
} 

в

$sql = "SELECT * FROM news WHERE id = $id_article"; 
$query = mysql_query($sql); 
while($result = mysql_fetch_assoc($query)); 
{ 
    echo '<div class="item"><h1><a href="read-news.php?newsid='.$result['id'].'">'.$result['subject'].'</a></h1><br />'; 
    echo $result['full_content'].'<br/>'; 
    echo date('D-M-Y', $result['date']).'<br/>'; 
    echo 'Posted by '.$id_article; 
    echo '</div>'; 
} 
0

Есть много ошибок в коде mysql_query было обесценился Используйте следующий код и ckeck для ошибок

<?php 
mysql_connect('localhost', 'root', 'password'); 
$conn = mysql_select_db('news'); 
$id_article = $_GET['newsid']; 
if($query = mysqli_fetch_assoc(mysqli_query($conn,"SELECT * FROM news WHERE id=$id_article"))){ 
echo '<div class="item"><h1><a href="read-news.php?newsid=' . $query['id'] . '">' . $query['subject'] . '</a></h1><br />'; 
echo $query['full_content'] . '<br/>'; 
echo date('D-M-Y', $query['date']) . '<br/>'; 
echo 'Posted by ' . $id_article; 
echo '</div>'; 
} 

?> 
0

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

$id_article = $_GET['newsid']; 
$query = "SELECT * FROM news WHERE id='$id_article'"; 
$query1=mysql_query($query); 
0

Вы должны вызвать функцию, чтобы получить строку, возвращаемую запросом. Вы пытаетесь получить доступ к $ query вместо строки. Ваш код должен выглядеть следующим образом:

<?php 
    mysql_connect('localhost','root','password'); 
    mysql_select_db('news'); 
    $id_article = $_GET['newsid']; 
    $query = mysql_query('SELECT * FROM news WHERE id="$id_article"'); 

    if ($query) {  
    $row = mysql_fetch_assoc($query)); 
    echo '<div class="item"><h1><a href="read-news.php?newsid='. $row['id'].'">'. $row['subject'].'</a></h1><br />'; 
    echo $row['full_content'].'<br/>'; 
    echo date('D-M-Y', $row['date']).'<br/>'; 
    echo 'Posted by '.$id_article; 
    echo '</div>'; 
    } else { 
    $message = 'Invalid query: ' . mysql_error() . "\n"; 
    $message .= 'Whole query: ' . $query; 
    die($message); 
    } 
?> 

Вы также можете посмотреть на), mysql_fetch_array(), mysql_fetch_row() функций (mysql_result.