- ベストアンサー
MySQLからデータを取り出して3つに分ける方法
- MySQLのデータベースからidの数値別にdiv要素へtaskの文字列を入れる方法について教えてください。
- 具体的には、「select * from table_list」を行い、その後taskを取り出すのか、3回SQLを使用して「select task from table_list where id=1」のようにするのか、どちらの方法が適しているのでしょうか。
- また、この質問に対するSEOを意識したタイトルやハッシュタグも教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
$arr1=array('ほげほげ1-1','ほげほげ1-2') $arr2=array('ほげほげ2-1','ほげほげ2-2') $arr3=array('ほげほげ3-1') と同等のことがしたいのであれば、以下の通りです。 $sql="select * from table_list"; $res=mysql_query($sql); while($rows = mysql_fetch_array($res,MYSQL_ASSOC)){ $arrayName="arr".$rows["id"]; ${$arrayName}[]=$rows["task"]; } //確認 print_r($arr1); print_r(arr2); print_r($arr3); 普通は任意の名前の変数など使わずに、多項配列にします $sql="select * from table_list"; $res=mysql_query($sql,$this->link) or die(mysql_error()); while($rows = mysql_fetch_array($res,MYSQL_ASSOC)){ $arr[$rows["id"]][]=$rows["task"]; } //確認 print_r($arr);
その他の回答 (2)
- yambejp
- ベストアンサー率51% (3827/7415)
まず・・・ フィールド名がidというからには排他的であるのが普通ですね。 SQL的にはuniqueもしくはprimaryで管理すべきところです。 とりあえず同じidが複数あるという場合は select * from table_list して、whileで回して、値を得るのが常套でしょう。 通常はSQLを発行する時点でidが1,2,3であることをわかっている わけではないので後者はつかわないと思います。 またidがかぶっているのでdivに渡す値は複数値になるので、 どうやって表現するか仕様をあらかじめ検討しておいた方がよいですね
HTMLの完成イメージは、どういった感じでしょうか?
補足
idの数は1~3の3つしかありません。 名前が悪かったです。一意ではありません。 そして、select task from table_list where id==1 というSQLを打つと、下のような配列が2つ、1つの変数に入ってしまいます。 array ( 'task' => 'ほげほげ1-1', ) array ( 'task' => 'ほげほげ1-2', ) これを、array('ほげほげ1-1','ほげほげ1-2') のような1つの配列にしたいのです。 これをid=2、3でも同じようにして、結果的に $arr1=array('ほげほげ1-1','ほげほげ1-2') $arr2=array('ほげほげ2-1','ほげほげ2-2') $arr3=array('ほげほげ3-1') というふうに。 もしできるならばSQLを1回でできると良いのですが、whileでid別に変数に分ける方法がわかりません。