[PHP-users 3900] Re: mysql を使ったデータベースで配列による選択(セレクト)

Youichi Iwakiri php-users@php.gr.jp
Tue, 27 Nov 2001 10:21:26 +0900


いわきりです

ALPHA wrote in <20011127044644.052F.ALPHA@alpha.ne.jp>:
 >$nhits回数だけ繰り返しですよね?

僕はそう解釈してますけどご本人はどうかはわかりません ;-p

 >member_idカラムやpasswdカラムに入ってるいる値を変数に挿入ですよね?
 >
 >	while($nhits = mysql_fetch_array($result)) {
 >こんな感じでよいのではないでしょうか?

私はPostgreSQLしか使ってないのですが、羨ましい記述が
出来ますね。
pgsql拡張モジュールでは
	$row = 0;
 	while ($nhits = pg_fetch_array($result, $row)) {
    ...
    ++$row;
    }
と行を指定する必要があります。

#どっちかと言えばpg_fetch_objectを多用してます。
 >	$member_id = $nhits[member_id];
    $member_id = $nhits->member_id;


 >人のプログラムの動作を勘違いしてないかこわごわです。

僕も勘違いしてるかも
でも、この辺りのコーディング例は*おまけ*であって
元の質問者の問題点は、

Hiroshi Ozeki wrote in <008001c176a9$f07aba10$0400000a@ecotec.co.jp>:
 > Warning: Unable to jump to row 2 on MySQL result index 4 in
 >/usr/local/www/data/test/list_confirm.php on line 27

とあるように、SELECTの結果が1件しかないのに2件目を取り出そうとしている
とかそういった類のものと推測しました。
 SELECT * FROM table WHERE id = 'aaaa'
のみ問い合わせてレコードセットは1件しか帰ってきていないのに
id ='(bbbb|cccc|dddd)'も取り出そうとしてるように感じました。
$i使ってるからそう思ったんですけどね。