- ベストアンサー
SQL+PHPでデータベースからデータを取得する方法について
- SQL+PHPでデータベースからデータを引っ張る方法について困っています。セレクト文を使用してテーブルのデータを取得し、while文で繰り返し処理したいのですが、記述方法がわかりません。
- テーブルにはa1からa80までのフィールドがあり、それぞれにレコードがあります。単純に$row['axx']と書くのではなく、短いコードで記述したいです。
- forやforeach、配列を使用して試しましたがうまくいきません。誰か教えていただけると助かります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
先ほどの説明ですが while($row = mysql_fetch_array($dyn)){ でなく while($row = mysql_fetch_assoc($dyn)){ でした mysql_fetch_array = 通常の配列で取得 mysql_fetch_assoc = 連想配列で取得
その他の回答 (2)
- thezen5
- ベストアンサー率84% (27/32)
1レコードに80のフィールドがあるんですか? だったら連想配列のまま使用したほうがいいと思いますが。 $a0 = $row['a0']; とかしてたら間違えて上書きとかして面倒なことになりそうですが。 最終出力時に1行づつ分解して出力するべきだと思います。 while($row = mysql_fetch_array($dyn)){ $hairetsu[]=$row; } 最後に foreach($hairetsu as $r){ foreach($r as $k=>$v){echo $k..' の値は '.$v."<br />\n"; } echo "<br />\n"; }
お礼
ありがとうございました、大変参考になりました。
- yambejp
- ベストアンサー率51% (3827/7415)
基本的にまっとうなプログラマなら「SELECT *」はつかいません あくまでデバッグ的な位置づけだとおもっておいてください また、mysql_query()はすでに非推奨です。運用方法を再検討された方がいいかと 以上を踏まえたうえでどうしてもというなら以下のどちらかで (1)extract <?PHP $row1=array("a1"=>"x1","b1"=>"y1","c1"=>"z1"); extract($row1); print $a1."<br>"; print $b1."<br>"; print $c1."<br>"; ?> (2)foreach <?PHP $row2=array("a2"=>"x2","b2"=>"y2","c2=>"z2"); foreach($row2 as $key=>$val){ $$key=$val; } print $a2."<br>"; print $b2."<br>"; print $c2."<br>"; } ?>
お礼
ご回答、ありがとうございます。 具体的なコードまで頂きまして、重ねてお礼申し上げます。 十分な知識もないまま運営、恥ずかしく感じています。 非推奨のものを使うリスクを考えますと、おっしゃる通り運用方法を再検討するべきだと感じております。 ありがとうございました。
お礼
ご回答、ありがとうございます。 結果、お教えいただいたシンプルな記述をアレンジして思うような結果に辿り着きました。 具体的なコードまで頂きまして、重ねてお礼申し上げます。