【问题标题】:Looping through results in mysqli在mysqli中循环结果
【发布时间】:2012-12-18 22:06:04
【问题描述】:

我是 mysqli 新手,在使用 mysqli 循环遍历结果时遇到问题。不幸的是,我只得到一个结果。当我将查询放入 phpMyAdmin 时,它会得到三个结果。我相信相关代码在这里,我只是说错了:

$connection = new mysqli($host, $databaseUsername, $databasePassword, $database);

if ($connection->connect_errno > 0) {
    die ('Unable to connect to database [' . $connection->connect_error . ']');
}

$sql = "SELECT clientId, studentFirstName, studentLastName
        FROM clients
        WHERE (studentEmail = '$postEmail') OR (parentEmail = '$postEmail');";  

if (!$result = $connection->query($sql)) {
    die ('There was an error running query[' . $connection->error . ']');
}

echo '<select class = "toolbarDropdown" id = "toolbarDropdown-MultipleAccounts">';

    while ($row = $result->fetch_array()) {
        echo '<option value="'.$row["clientId"].'">'.$row["studentFirstName"].' '.$row["studentLastName"].'</option>';
    }

echo '</select>';

【问题讨论】:

  • 您能添加您的实际查询吗?
  • 我们需要查看查询。
  • @DouglasA.Crosby 好的,我添加了 SQL 查询。稍后在代码中我回显 $sql,然后将其复制并粘贴到 phpMyAdmin 中。在 phpMyAdmin 中,这会产生三个结果。

标签: php mysqli while-loop


【解决方案1】:

您的 HTML 中缺少关闭的 " at option="value

注意

$row = $result->fetch_array()

可以替换为

$row = $result->fetch_assoc()

这样做,您获取的每条记录的数组将占用一半大小。

【讨论】:

  • 这是我原来的,在我改成上面写的之前。两种方法结果相同,只返回一行
  • 是的,你是对的,默认的 fetch 样式是 MYSQL_BOTH。所以fetch_array() 也可以。错误日志说什么?能否简略启用 display_errors?
  • 啊!我刚刚阅读了顶部的编辑(缺少“,完全做到了。非常感谢,它让我发疯了好几个小时。
猜你喜欢
  • 1970-01-01
  • 2019-06-07
  • 2015-10-05
  • 1970-01-01
  • 2022-11-30
  • 2012-07-27
  • 2014-07-10
  • 2014-06-19
  • 2014-08-17
相关资源
最近更新 更多