2016-08-19 16 views
0

これは簡単ですみません、私を殺してしまいました。私は解決策を見つけることができません!SQLの結果から動的変数を作成する方法

私はデータベースからのSQLクエリの戻りレコードを持っています。私が使用している2つのフィールドは$ row ["staff_id"]と$ row ["name"]です。私は何かのようである動的変数構築したいということから、

:varibale名が動的に作成され

$staffid_1 = "Mark Smith"; 
$staffid_2 = "Sally Baker"; 
$staffid_3 = "Peter Pan"; 

は、$最初の部分のために、「staffid_」と$行[「staff_idを」]組み合わせること名前の行["name"]。

私が試してみた:

${$staff_id . $row["staff_id"]} = $row["name"]; 
echo ${$staff_id . $row["staff_id"]} . "<br>"; 

しかし、運を!どのような援助をいただければ幸いです:)

+0

あなたは '$ staff_id'をどこで入手しましたか?まだ初期化されていません。 '$ {'staffid_'。 $ row ['staff_id']} ' – Ghost

+0

それから' echo $ staffid_1; '私はこれを避けたいと思いますが、なぜこれを望みますか? – Ghost

答えて

0

私は

クエリ例えば、あなたがそれを一緒に連結するからそれを呼び出しているものは何でも、その後、あなたはそれの最初の部分を返すようにクエリを変更することが最善であるかもしれないと思うだろう。あなたが必要とするように見えるよう

SELECT '$staffid_' + ltrim(rtrim(cast(staff_id as varchar))) + ' = "' + name + '"' 
FROM [table list] 
ORDER BY ... 

そして、これらの間
で、必要に応じて、結果セットの個々の行を連結します。

0

オーケーPHPで、あなたは基本的にこの意味二重の平準化変数を使用するための素晴らしいオプションを持っているので:

$$varname = $value; 

これは実際には結果は、あなたが文字列変数を持っている場合、 (たとえば$staffid = "staffid_1"用)

$staffid = "Jasonbourne"; 
$$staffid = "Matt Damon"; 
// Will result in 
$JasonBourne = "Matt Damon"; 

だからあなた例えば:

$name = "staffid_" . $row["staff_id"]; 
$$name = $row["name"]; 
01次の操作を行うことができ

は変数になります:$staff_id_1 = "Mark Smith";

をダブルについての詳細を読むには - 変数を平準化: http://php.net/manual/en/language.variables.variable.php

EDIT:あなたが行をループをしたい場合:

foreach ($sql_result as $row) { 
    $name = "staffid_" . $row["staff_id"]; 
    $$name = $row["name"]; 
} 
関連する問題