1

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

<?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)

谢谢你的帮助!

4

2 回答 2

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

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

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

于 2012-08-13T20:42:22.177 回答
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...
于 2012-08-13T20:42:29.857 回答