2014-10-09 2 views
0

У меня проблема, PHP, пока я не показываю все строки из базы данных, если я делаю это на DESC, это показывает все, но не последнее, если я использую ASC, это показывает все, но не первое. Я пробовал много решений, но пока не работал.Mysqli while dont показать все строки

Пожалуйста, помогите мне в этом коде:

$sql1 = " SELECT * FROM news ORDER BY id DESC"; 

if ($result1 = $mysqli->query($sql1)) { 
    $news = $result1->fetch_array(); 
} 
while($row = mysqli_fetch_array($result1)) { 
echo "<p><b> {$row['name']} </b><br />"; 
echo "{$row['text']} <br />"; 
echo "<font size='2'>{$row['date']}</font></p>"; 
    } 

ответ

0

Вы выборки первой строки и присвоения его $news. Это означает, что он уже получен, когда вы начинаете свой цикл. Удалите эту строку, и она должна работать нормально.

0

Попробуйте это и введите цикл while в оператор if.

$sql1 = " SELECT * FROM news ORDER BY id DESC"; 

if ($result1 = $mysqli->query($sql1)) { 
    while($row = mysqli_fetch_array($result1)) { 
echo "<p><b> {$row['name']} </b><br />"; 
echo "{$row['text']} <br />"; 
echo "<font size='2'>{$row['date']}</font></p>"; 
    } 
} 

Причина, по которой вы уже имеете первый результат. $news = $result1->fetch_array();удалите эту строку, так почему бы вам не показать первый результат, когда вы используете ASC, , и он не покажет вам результат при использовании DSC.

0
$sql1 = " SELECT * FROM news ORDER BY id DESC"; 

    while($row = mysqli_fetch_array($result1)) { 
     echo "<p><b> {$row['name']} </b><br />"; 
     echo "{$row['text']} <br />"; 
     echo "<font size='2'>{$row['date']}</font></p>"; 
    } 

when $ news = $ result1-> fetch_array(); эта строка выполняется, она уже получает первый результат в переменную $ news. В результате вы потеряете первую запись из своего набора записей.

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