2014-10-09 63 views
0

我得到了一個問題,PHP雖然不顯示數據庫中的所有行,如果我在DESC上做它顯示所有但不是最後一個,如果我使用ASC它顯示所有,但不是第一個。我嘗試了很多解決方案,但都沒有工作。Mysqli雖然不顯示所有行

請幫我在此代碼:

$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>"; 
    } 

當$ news = $ result1-> fetch_array();此行執行時,它已經將第一個結果讀入$ news變量。因此,您會丟失記錄集中的第一條記錄。