mysql:4723
From: "f.t" <"f.t" <fujiyama@xxxxxxxxxx>>
Date: Tue, 27 Nov 2001 11:49:27 +0900
Subject: [mysql 04723] Re: PHP を使ったデータベースで配列による選択(セレクト)
fujiyamaです。 Tom Mishima <tmishima@xxxxxxxxxx> wrote(Tue, 27 Nov 2001 09:26:43 +0900): > <? > num = mysql_num_rows ($result); > sql="select * from table where" > for ($i=0; $i<$num; $i++) { > if ($i!=0) > sql = sql + " or"; > sql = sql + " id="$check[$i]; > } > ?> > > 最近PHPをやっていないのと、 sql .="or id='$check[$i]'"; でしょうね。後for文に入る前にsql .="1=1"とかが必要。 多分、多紀さんのようにinで書いた方がスマートだとは思います。 #ひょっとして最近やっているのはJavaScript系? *******************元 >> たとえば、配列のデータを渡されたphpのページで下記のようにする >> と、 >> >> <? >> num = mysql_num_rows ($result); >> for ($i=0; $i<$num; $i++) { >> print "$check[$i]<br>"; >> ?> > > check[$i] は、下記と同じ意味だと理解しているのですが、 > > select * from table where id= ('check1' or 'check2' or 'check3' > > .......) とはなりませんね。 $checkという配列のキーが$iの要素は一つなので。 それより、この$checkという配列がどのように作られているのかが謎なんですが?? あと、mysqlに発行しているSQLも謎。$resultにはどんな結果が入っているのや ら? > 何をしたいかというと、データを表形式に一覧表示して、チェックボック > スからチェックをつけたものを一度に削除したり、データの更新したりし > たいと考えています。 > そこで、複数チェックがついたものは、配列でデータを引き渡しすること > にしました。 1:表の元になるデータがMySQLに入っている。 ↓ 2:それをPHPを使って一覧表示する(示されたPHPの部分)。 ↓ 3:一覧表示画面のフォームでチェックをする。 ↓ 4:更新や削除ボタンで送信する。 ということだと勝手に理解しましたが、だと3,4の部分が出てないですね。 <form action=update.php> <input type=checkbox name=check_num[] value=$check[0]>$check[0] <input type=checkbox name=check_num[] value=$check[1]>$check[1] ... <input type=submit value="update"> <input type=submit value="delete"> </form> なら分かりやすいですが。 で、 $set ="yyy=$check_num[$k]"; for(チェックボックス分) if($check_num[$k]){ $set .=", yyy=$check_num[$k]"; } …ちょっと効率悪いか(~~; -- よろしくお願いします f.t <fujiyama@xxxxxxxxxx>
4718 2001-11-27 01:03 ["Hiroshi Ozeki" <oze] PHP を使ったデータベースで配列による選択(セレクト) 4719 2001-11-27 02:00 ┣[とみたまさひろ <tomm] 4720 2001-11-27 02:26 ┃┗["Hiroshi Ozeki" <oze] 4721 2001-11-27 09:26 ┃ ┗[Tom Mishima <tmishim] -> 4723 2001-11-27 11:49 ┃ ┗["f.t" <fujiyama@xxxx] 4722 2001-11-27 10:44 ┗[Taki.MR <taki@xxxxxx]