したがって、これを実行してテーブル全体を取得します。
$result = mysql_query( 'SELECT * FROM mytable' );
次に、PHPページの別の部分で、(特定の行に対して)別のクエリを実行します。
$result2 = mysql_query( 'SELECT * FROM mytable WHERE id = ' . $id );
$row = mysql_fetch_array( $result2 );
したがって、2つのクエリを実行しています。しかし、私は本当にそれをする必要はありませんね?つまり、2番目のクエリで取得している行は$result
、テーブル全体が含まれているため、(最初のクエリの結果)にすでに存在しています。
$result
したがって、2番目のクエリを実行する代わりに、目的の行を直接(そのままの状態で)抽出したいと思います$result
。
どうすればいいですか?
OK、これが私がそれを実装した方法です:
function getRowById ( $result, $id )
{
while ( $row = mysql_fetch_array( $result ) ) {
if ( $row['id'] == $id ) {
mysql_data_seek( $result, 0 );
return $row;
}
}
}