こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

フィールド名を変数で指定するには

$device = 'a';
$Field = $device.'_type';

$sql = 'select "'.$Field.'" from table where member_id = "'.$id.'"';
$res = mysql_query($sql);
$row = mysql_fetch_assoc($res);

if ($row){
echo $row[$Field];
}

$row[$Field]をechoで表示すると『a_type』と表示され、中身が表示されません。
フィールド名を変数ではなくa_typeと直接入力すると正常な結果が表示されます。

ちなみにtableにはa_type、b_type、c_typeテーブルが存在します。
ドコモからのアクセスはa_type、auからはb_typeと、ユーザーエージェントによって分けています。

フィールド名を変数で指定して値を取得するには、どのようにすればよいでしょうか?
宜しくお願いいたします。

投稿日時 - 2012-06-19 14:13:01

QNo.7542582

すぐに回答ほしいです

質問者が選んだベストアンサー

こんにちは。

SQLの構成がおかしいです。
$sqlを出力すると
select "a_type" from table where member_id="a"
というものが生成されています。

$Fieldを"でくくっては返ってくる値は常にa_typeになってしまいます。

$sql = 'select '.$Field.' from table where member_id = "'.$id.'"';
に修正してみてください。

投稿日時 - 2012-06-19 14:27:07

お礼

ありがとうございました。無事解決しました。

投稿日時 - 2012-06-20 20:09:39

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問