如何从SQL结果中创建动态变量
问题描述:
这一个应该很容易,它会杀死我我找不到解决方案!如何从SQL结果中创建动态变量
我有一个SQL查询从数据库返回记录。我使用的两个字段是$ row [“staff_id”]和$ row [“name”]。
,从我想建立一个动态的变量,它是这样的:
$staffid_1 = "Mark Smith";
$staffid_2 = "Sally Baker";
$staffid_3 = "Peter Pan";
是动态创建的varibale名称的第一部分相结合“staffid_”和$行[“staff_id”]然后$行[“name”]作为名称。
我已经试过:
${$staff_id . $row["staff_id"]} = $row["name"];
echo ${$staff_id . $row["staff_id"]} . "<br>";
,但没有运气!任何援助将不胜感激:)
答
我想你可能是最好改变你的查询返回了它的第一部分,那么无论你是从串联到一起调用它,如
查询:
SELECT '$staffid_' + ltrim(rtrim(cast(staff_id as varchar))) + ' = "' + name + '"'
FROM [table list]
ORDER BY ...
然后拼接结果集的各行的要求,与
在两者之间,你似乎需要。
答
好了,所以在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"];
将导致变量:$staff_id_1 = "Mark Smith";
要了解更多有关双 - 拉平变量: http://php.net/manual/en/language.variables.variable.php
编辑:如果您通过行想循环:
foreach ($sql_result as $row) {
$name = "staffid_" . $row["staff_id"];
$$name = $row["name"];
}
你在哪里获得'$ staff_id'?它尚未初始化。 '$ {'staffid_'。 $ row ['staff_id']}' – Ghost
then'echo $ staffid_1;'我会远离这个,但为什么要这样? – Ghost