2013-10-14 5 views
0

У меня есть этот короткий код для эхо двух последних строк из базы данных MySql. Проблема в том, что она показывает только одну - одну, а последнюю - линию. Я не могу понять, что я делаю неправильно. Я использую почти тот же код на другом веб-сайте, где он работает отлично. Если я использую LIMIT 1 в запросе Mysql, мне нечего эхо. Не могли бы вы помочь? Большое спасибо.Пока цикл показывает только один результат

<? 
    $query = mysql_query("SELECT no, date, msg FROM news ORDER BY -no LIMIT 2"); 
    $data = mysql_fetch_array($query); 
    while ($data = mysql_fetch_array($query)) { 
     $text = nl2br ($data['msg']); 
     echo ('<b>Aktuality z Hlavatice ('.$data['date'].')</b><br /><br />' . $text); 
    } 
?> 
+0

Прекратить использование устаревших функций 'mysql_ *'! Вместо этого используйте PDO/MySQLi. – Raptor

ответ

9

Удалить первый $data = mysql_fetch_array ($query); и оставить только то, что один в while. Этот первый вызов «крадет» ваш первый ряд, и из-за LIMIT 2 вы получите только еще один.

+0

Awsome. Большое спасибо. Теперь вопрос заключается в том, почему он работает в другом скрипте, который я использую :) – user2877941

+0

@ user2877941 Что-то должно быть другим в этом другом скрипте. Других объяснений нет ... –

0

попробуйте это .... вы делаете ошибку. удалить $ data = mysql_fetch_array ($ query);

<? 
$query = mysql_query("SELECT no, date, msg FROM news ORDER BY -no LIMIT 2"); 

while ($data=mysql_fetch_array($query)) 
{ 
$text = nl2br ($data['msg']); 
echo ('<b>Aktuality z Hlavatice ('.$data['date'].')</b><br /><br />'.$text); 
} 
?> 
Смежные вопросы