【问题标题】:First echo database row doesn't show PHP [duplicate]第一个回显数据库行不显示 PHP [重复]
【发布时间】:2018-08-28 14:01:32
【问题描述】:

我有这个问题,数据库的第一行没有显示。 这是它的样子:

我做错了什么?

这是我的代码:

  <?php
    $db=mysqli_connect("xxxxxx","xxxxxxx","","xxxxxxx");
    $sql="SELECT* from flyreise";
    $result=mysqli_query($db,$sql);

    echo "<table>";
    echo "<tr>";
    echo "<th></th>";
    echo "</tr>";
    echo "<tr>";

$countRows=mysqli_affected_rows($db);
    for($i=0;$i<$countRows;$i++){
        $row=mysqli_fetch_array($result);
        echo "<td><strong>From:</strong>".$row["fra"]." <br><strong>To:</strong> ".$row["til"]." <br><strong>Date:</strong> ".$row["dato"]." <br><strong>Clock:</strong> ".$row["klokkeslett"]."</td>";
        echo "<td></td>";
        echo "<td></td>";
      }

echo "</tr>";
        echo "</table>";
?>

【问题讨论】:

  • 执行SQL语句后检查错误
  • 也许您的数据库中有一个空行?
  • 看起来更像是最后一行,而不是第一行。尝试var_dump($row); 看看它是否显示任何内容。此外,不要使用mysqli_affected_rowsfor($i=0;$i&lt;$countRows;$i++),最好将循环更改为使用while($row = mysqli_fetch_array($result)) {
  • @aynber 我试过了,但它只是隐藏了最后一行和你看到的粗体文本。我知道我在数据库中有 6 行,但现在只显示 5 行。
  • 可以显示数据库的内容吗?准确确定缺少哪一行。

标签: php sql database


【解决方案1】:

用这个替换 for 循环:

while($row=mysqli_fetch_array($result)){
    echo "<td><strong>From:</strong>".$row["fra"]." <br><strong>To:</strong> 
    ".$row["til"]." <br><strong>Date:</strong> ".$row["dato"]." <br><strong>Clock: 
   </strong> ".$row["klokkeslett"]."</td>";
    echo "<td></td>";
    echo "<td></td>";
}

您是在告诉您程序继续循环遍历mysql_fetch_array($result) 并将获取的记录分配给$row

另外,不要忘记删除这条线$countRows=mysqli_affected_rows($db);,因为你不再需要它了。

【讨论】:

  • 现在我想出了如何让它发挥作用。我不得不放置 $result=mysqli_query($db,$sql);就在while语句的正上方。
猜你喜欢
  • 2017-08-21
  • 1970-01-01
  • 1970-01-01
  • 2019-01-06
  • 1970-01-01
  • 2018-07-28
  • 2020-07-15
  • 1970-01-01
  • 2018-07-08
相关资源
最近更新 更多