3

どなたでもお手伝いできますか。次のPHPコードを実行しようとしています。

   $sql="SELECT * FROM vendors WHERE vuid=".$uid."AND status="."'c'";
   $sql=$sql . "LIMIT 0, 10"; 
   $result=mysql_query($sql);
   $numrows=mysql_num_rows($result);        

   for($i=0;$i<$numrows;$i++)
   {

    if($numrows>0) 
    {
    mysql_data_seek($result,$i);
}

次のエラーが表示されます警告:mysql_data_seek():オフセット1はMySQL結果インデックス5に対して無効です(またはクエリデータがバッファリングされていません)。$ numrowsは2であるため、mysql_data_seekの範囲は有効です。

よろしくお願いします

4

1 に答える 1

4

結果セットが空の場合、mysql_data_seek()は E_WARNING で失敗します。これは、mysql_data_seek() を呼び出す前に結果セットが空かどうかをチェックしていないために発生していると思います。

行数が >=1 の場合は常に結果をチェックし、安全に mysql_data_seek() を呼び出します。

if ( mysql_num_rows ( $sql ) > 0 )
{
    // do stuff, you have some results
}
else
{
    // no results to process
}  
于 2012-05-26T18:50:23.370 に答える