データ(テーブル名:os)
id,name_a,name_b
1,マイクロ,ソフト
2,マッキン,トッシュ
3,リ,ナックス
というテーブルがあり
<?php
$sql = mysql_query("SELECT * FROM os WHERE name_b LIKE 'ソフト'");
while($ck = mysql_fetch_assoc($sql)){
}
?>
とした場合
whileの中では、echo $ck[name_a]; とすればこの場合「マイクロ」と表示されますが
whileの外でも表示させたい場合はどうすれば効率がいいでしょうか?
一つは、whileの中で$a = $ck[name_a]; $b = $ck[name_b]・・・と入力すればいいのですが
フィールド数が結構な数ある為に効率が悪いです。
また、
list($ck2[],$ck2[],…) = $assoc;
というようにlistを使ってもつらつらと書かなければなりません。
もしくは、mysql_fetch_assocをrowに書き換えて
for($i=0;$i<count($ck);$i++){
$ck2[$i] = $ck[$i];
}
としてしまうか、
現在htmlで作業しているのですが
<?php
while(){
?>
<?php echo $ck[name_a]; ?>
<?php
}
?>
がいいかな。と思ったりするのですが
なにぶん素人の考えなので、実際に仕事等で利用されている方は
どのようにして使用しておられるのか教えて頂けると幸いです。
宜しくお願いします。
No.1ベストアンサー
- 回答日時:
こうやって配列にため込んで再利用してみては?
<?PHP
$sql="SELECT * FROM os WHERE name_b LIKE 'ソフト'";
$res=mysql_query($sql);
while($row = mysql_fetch_array($res,MYSQL_ASSOC)){
$a[]=$row;
}
print_r($a);
?>
SQLの戻り値データが一つしかなく、フィールド名(もしくは任意の別名)の
配列におさめればいいのであれば
<?PHP
$sql="SELECT * FROM os WHERE name_b LIKE 'ソフト'";
$res=mysql_query($sql);
while($row = mysql_fetch_array($res,MYSQL_ASSOC)){
extract($row);
}
print $name_a;
?>
でもよいですが、extractは致命的なバグにつながる可能性も秘めているので
お勧めはできません。
またSELECT * は避けた方がいいです。可能な限りフィールド名を列記してください。
SELECT id,name_a,name_b FROM ・・・
回答、有難う御座います。
お陰様で自分が求めていた処理を施せるようになりました。
配列を二次元化するなんて考えもしませんでした。
勉強になります。
extractはとても便利な関数なんですね。
GETやPOST等の信頼出来ないデータは使用しない方がいい旨が
少し調べた所記載されていたので
多次元配列とextractを使いわけながら使用していきたいと思います。
後、「*」も了解しました。
フィールド長がかなりあったので手抜きしていたのですが、
これからは列記していくことにします。
解りやすい回答、有難う御座いました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- PHP PHP MySql ページング 2 2022/09/20 06:38
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- 物理学 フーリエ変換の振幅について 1 2022/09/04 08:56
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- MySQL php テーブルを作れない 2 2022/11/17 18:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
検索機能
-
MySQLからのデータをページに1...
-
接続ができません
-
like句を使って日本語を検索す...
-
副問合せにLIKE文を使う方法は...
-
SQLのVARCHARとVARCHAR2の違い
-
phpで複数のDBを使用した場合の...
-
MySQL の安全な再起動とコネク...
-
mysqlへのインポート処理がうま...
-
[SQLserver]長文に適したデータ...
-
DB2 INSERT時の格納順序
-
.sqlのファイルをそのままコマ...
-
PDFをDBに格納する/取り出すには?
-
2023年10月25日現在のMAMP ...
-
プライマリーキーの昇順でソー...
-
RPMのmysqlとmysql-serverの違い
-
MySQLにリモートホストから接続...
-
MYSQLサービス停止時にWindows...
-
外部からのMYSQLへの接続方法と...
-
VBAで変数内に保持された二次配...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォームから送信した値とMySQL...
-
PHPにてSQLから取得したデータ...
-
MySQLからのデータをページに1...
-
mysql sqlエラー
-
pdfファイルの管理システム
-
mysqlで作ったテーブルをphpで...
-
PHPでMySQLを使った検索のプロ...
-
mysql データ更新
-
プレースホルダを使った複数カ...
-
MySQLでの順位付けについて
-
検索機能
-
配列の要素でmysqlに問い合わせ
-
PHPでMySQLを使った検索のプロ...
-
MySQLでデータ表示
-
mysqlの置換について2
-
mysql+php リストボックスにつ...
-
PDOでDB ページング
-
データを一括で処理する方法に...
-
MySQLからのデータをページに1...
-
PHP+MYSQLで検索画面を作成し...
おすすめ情報