1

何らかの理由で、データベースからデータを取得する際に問題が発生しています。リストされている最初のアイテムが除外されます。

$sql=mysql_query("SELECT * FROM students WHERE (year = '" . mysql_real_escape_string($_SESSION['year']) . "') and ( branch= '" . mysql_real_escape_string(($_SESSION['branch'])). "') ");


$data=mysql_fetch_array( $sql );

print "<table>"
while($data = mysql_fetch_array( $sql )) 
 { 

 Print "<tr><td>".$data['idno']." </td><td>".$data['name'] . " </td></tr>";
 } 
print "</table>"

これで私を助けてください。ありがとうございました。

4

2 に答える 2

3

次の行を削除します。

$data=mysql_fetch_array( $sql ); 

への呼び出しは、内部ポインターを次の行に移動するため、ループ内mysql_fetch_arrayの最初の行を除くすべての行を取得します。while

で内部ポインタをリセットすることもできますmysql_data_seek

mysql_data_seek ($sql, 0); // 0 for first row
于 2012-08-11T09:28:45.067 に答える
0

これは、しばらく前に mysql_fetch_array を 1 回使用したためです。最初の呼び出しで最初の結果が得られ、その後 while ループに入ります。$data変数は、2 番目の結果によって割り当てられる最初の結果を消去し、次に 3 番目、4 番目などを消去します。while ループの前にこの呼び出しがあるため、最初の結果は常に回避されます。

于 2012-08-11T09:30:18.820 に答える