0

変数のデータをリセットして、再度呼び出すことができるようにしようとしています。最初のクエリにデータがある場合は、リセットを実行するために必要です。最初にデータをチェックし、次にデータがある場合はインデックスを 0 に戻します。

これは私のローカルホスト環境では機能しますが、ライブ環境では機能しません。最初のクエリで結果が返されないため、エラーが発生していることはわかっているため、mysql_num_rows($query)空です。

エラーが発生します:Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource.

(このコードは、最初のクエリが結果を返し、2 番目のクエリを正常にリセットして表示するときに機能します。)

if (mysql_num_rows($query)){
    mysql_data_seek($query, 0);
}

情報が見つからない場合にエラーを吐き出さずに、最初のクエリに情報があるかどうかを確認できるより良い方法はありますか?

4

1 に答える 1

1

mysql_? の使用に関する他のコメントに注意してください。機能。

何らかの理由で結果を複数回反復する場合は、Marc B がコメントしたように、最初のパスでそれらを配列にダンプします。たとえば(まだ mysql_? 関数を使用しています);

$result = mysql_query($query);
if (!$result) {
    echo 'Could not run query: ' . mysql_error();
    exit;
}
while($row = mysql_fetch_row($result)){
    $myResultSet[]=$row;
}

完了したら、そのセットを好きなだけ繰り返すことができます

foreach($myResultSet as $row){  # note foreach resets each time
    # do stuff with $row['fieldname']
}

ただし、この機会に mysql_ を最新のメソッドに更新する必要があります...この根本的な解決策は同じままです。

それでも解決しない場合は、さらにコードを投稿して、なぜ、何をしようとしているのかを理解できるようにしてください。

于 2012-09-11T21:45:48.887 に答える