人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

php&MySQLについての質問です。

テーブル「item」に10個のフィールドがあるとします。
id,item_name,price,......

現在は下記のようにフィールドの値を1つずつ取得して変数へ入れています。
変数名=フィールド名といった感じで一括で取得して変数に入れる方法はありませんか?

$query = mysql_query("SELECT item_name FROM item WHERE id='$id", $link);
if($row = mysql_fetch_array($query)){
$item_name =($row['item_name']);
}

●質問者: clab_yasu
●カテゴリ:ウェブ制作
✍キーワード:LINK MySQL PHP SELECT フィールド
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● rouge_2008
●100ポイント ベストアンサー

先にカラムを取得して置いて、可変変数を使用して代入しています。

$res = mysql_query("DESC item", $link);

while ($row = mysql_fetch_row($res)) {
$clm_arr[] = $row['0'];
}

$cnt = count($clm_arr);

// $idはこれより前に指定してあるものとします。
$query = mysql_query("SELECT * FROM item WHERE id='".$id."'", $link);

while ($row = mysql_fetch_array($query, MYSQL_ASSOC)){
for($n = 0; $n < $cnt; $n++){
$$clm_arr[$n] = $row["$clm_arr[$n]"];
// 表示確認
echo "変数 $$clm_arr[$n] の値は ${$clm_arr[$n]}です。<br>\r\n";
}
}


・カラムの取得

http://yantona.jugem.jp/?eid=301

http://www.bitscope.co.jp/tep/MySQL/quickMySQL.html#doc1_ss:info...


・可変変数

http://www.dotaster.com/doc/php3/tips/varvars.php

http://masha.maakikaku.jp/2008/03/php.php

◎質問者からの返答

お世話になります。

ズバリのご回答ありがとうございました。

今まで長々と記述していたのが何だったろうと感じる便利さですね。


2 ● うぃんど
●35ポイント

手抜き対応

mysql_queryの結果が意図しない順序や内容であっても動いてしまうためミスに気づけない

トラブル発生の原因になり、トラブル発生箇所の発見も困難にする手抜きな対応

$query = mysql_query("SELECT item_name, price, ...... FROM item WHERE id='$id", $link);
if($row = mysql_fetch_array($query)){
 list( $item_name, $price, ...... ) = array_values( $row );
}

堅実な対応

mysql_queryの結果が意図しない内容の場合はエラーになって止まる可能性が高くミスに気づきやすい

コード作成は少し面倒でもトラブルを起こすことは少ない

コードの意図することも理解しやすくなりメンテナンスも容易

$query = mysql_query("SELECT item_name, price, ...... FROM item WHERE id='$id", $link);
if($row = mysql_fetch_array($query)){
 list( $item_name, $price, ...... ) = array( $row['item_name'], $row['price'], ...... );
}

その他

1レコード取得
if (list( $item_name, $price, ...... ) = mysql_fetch_array($query)) {
複数レコード取得
while (list( $item_name, $price, ...... ) = mysql_fetch_array($query)) {

参考URL

http://jp2.php.net/manual/ja/function.list.php

http://jp2.php.net/manual/ja/function.array-values.php

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ