Mysqli虽然不显示所有行

时间:2014-10-09 08:54:04

标签: php html mysql mysqli

我遇到了一个问题,PHP没有显示数据库中的所有行,如果我在DESC上显示它显示所有但不是最后一个如果我使用ASC它显示所有但不是第一个。我尝试了很多解决方案,但还没有解决。

请使用此代码帮助我:

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

3 个答案:

答案 0 :(得分:0)

您正在抓取第一行并将其分配给$news。这意味着当你开始循环时它已经被取出了。删除该行,它应该可以正常工作。

答案 1 :(得分: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时它不会显示结果。

答案 2 :(得分: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-&gt; fetch_array();这行执行后,它已经将第一个结果提取到$ news变量中。结果,您从记录集中删除了第一条记录。