MySQL Query不打印所有表数据

时间:2012-08-13 20:40:47

标签: 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>

出于某种原因,它会返回除第一个之外的所有结果?防爆。我按名字订购,第一个应该是苹果(id = 9),但它正在跳过并返回蓝莓(id = 5)

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

$data = mysql_query("SELECT * FROM table ORDER BY name");
$info = mysql_fetch_array($data);

第一个mysql_fetch_array行加载一行数据;当你进入for循环时,然后加载下一行,所以第一行被丢弃。

最简单的解决方案就是删除第一个电话。

答案 1 :(得分:2)

您在循环之前mysql_fetch_array()之后立即调用mysql_query(),它将一行检索到$info并将记录指针前进到第二行。然后,当您输入fetch循环时,行集已指向第二行。

$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...