这里可能只是一个简单的解决方案,但这是我的代码:
<?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)
感谢您的帮助!
答案 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...