我遇到了一个问题,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>";
}
答案 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变量中。结果,您从记录集中删除了第一条记录。