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()ています。ループは1つの行を取得し$info、レコードポインタを2番目の行に進めます。次にフェッチループに入ると、行セットはすでに2番目の行を指しています。

$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 に答える