php - MySQL 查询不打印所有表数据

标签 php mysql

这里可能是一个简单的解决方案,但这是我的代码:

<?php
include("connect.php");
$data = mysql_query("SELECT * FROM table ORDER BY name");
$info = mysql_fetch_array($data);
?>

然后打印:

<select>
 <?php
  while($info = mysql_fetch_array($data)) {
     echo '<option value="'.$info['value'].'" rel="'.$info['del'].'">'.$info['name'].'</option>';
  }
 ?>
</select>

出于某种原因,它会返回除第一个结果之外的所有结果?前任。我按名称订购,第一个应该是 Apples (id = 9),但它跳过了它并返回了 Blueberries (id = 5)

感谢您的帮助!

最佳答案

您在循环之前 mysql_query() 之后立即调用 mysql_fetch_array(),它会将一行检索到 $info 中并推进记录指向第二行的指针。当您随后进入获取循环时,行集已经指向第二行。

$data = mysql_query("SELECT * FROM table ORDER BY name");
// Don't do this!
// $info = mysql_fetch_array($data);
// Instead just proceed with your while loop to fetch rows...

关于php - MySQL 查询不打印所有表数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11941960/

相关文章:

javascript - 仅允许通过 iFrame 访问 URL,并阻止在 PHP 中直接访问

mysql - 根据 USER 和 MESSAGE 表从 MySQL 数据库获取消息线程

mysql - 按 COUNT(*) 过滤?

php - 如何统计项目数量

javascript - 在 JavaScript 函数中创建表单?

php - 如何通过一个查询回显多个数据库结果

php - 将 MySQL 查询结果显示为每行的 HTML 表

PHP 字符串作为 mysqli_fetch_array 的数组键

mysql - on 子句中的未知列,即使该列存在

php - C++、Python 或 PHP,无限循环