[PHP-users 3895] Re: mysql を使ったデータベースで配列による選択(セレクト)
Youichi Iwakiri
php-users@php.gr.jp
Tue, 27 Nov 2001 04:08:15 +0900
いわきりです
#ソースの一部をみただけじゃわかる訳がありません。
Hiroshi Ozeki wrote in <008001c176a9$f07aba10$0400000a@ecotec.co.jp>:
>一件目のデータは表示されるようになりました。認識されるようになった
>みたいです。
>しかし、その後のデータはエラーです。データを呼び出すのに下記のよう
>にしています。
>これがよくないのでしょうか?
> $member_id=mysql_result($result,$i,"member_id");
> $passwd =mysql_result($result,$i,"passwd");
> $mname =mysql_result($result,$i,"mname");
> $pref =mysql_result($result,$i,"pref");
> $telno =mysql_result($result,$i,"telno");
> $email =mysql_result($result,$i,"email");
> $acknowledge =mysql_result($result,$i,"acknowledge");
ここで使ってる$iってなにもの? ってことです。
Hiroshi Ozeki wrote in <006401c176a1$ebb6ea10$0400000a@ecotec.co.jp>:
><?
>num = mysql_num_rows ($result);
>for ($i=0; $i<$num; $i++) {
>print "$check[$i]<br>";
>?>
>aaaa
>bbbb
>cccc
>dddd
前のメールのprint付近にmysql_db_queryを埋め込んだのなら、
$i=0の時は
SELECT * FROM table WHERE id ='aaaa'
が発行されるだけ
この場合はループを4回まわして結果を取得するしかないですよね。
<?
num = mysql_num_rows ($result);
for ($i=0; $i<$num; $i++) {
$query_result = ($db_name, "
SELECT * FROM table WHERE id ='{$check[$i]}'
");
$nhits = mysql_num_rows ($query_result);
for ($j=0; $j<$nhits; ++$j) {
$member_id=mysql_result($result,$j,"member_id");
$passwd =mysql_result($result,$j,"passwd");
$mname =mysql_result($result,$j,"mname");
$pref =mysql_result($result,$j,"pref");
$telno =mysql_result($result,$j,"telno");
$email =mysql_result($result,$j,"email");
$acknowledge =mysql_result($result,$j,"acknowledge");
// この後に表示でもなんでもいいけど処理を書く
// 表示とかなんとかの処理終了
}
}
?>
上みたいな書き方は普通しないと思うけど。
mysqlのSELECTが
SELECT * FROM table WHERE id IN ('aaaa', 'bbbb', 'cccc', 'dddd')
という書き方を許すならもう少しましなコードが書けますね。
#添削教室みたいだ