我有一个包含多列的MySQL表,我需要从中选择每个记录的所有列,并从中创建一个特定的$key=>$value
。
例如
表
ID | group_cat | group_sec | group_name | enabled | sent
-------------------------------------------------------------------------------------
1 | C | sct_a | Project_A | 1 | no
2 | C | sct_b | Project_B | 1 | no
3 | P | sct_c | Moderators | 1 | no
4 | C | sct_d | Ambassad | 1 | no
5 | P | sct_e | PMP | 0 | no
我需要的MySQL查询是
"SELECT * FROM groups WHERE sent = 'no' "
通过PHP是
PHP代码
$query = "SELECT * FROM `groups` WHERE `sent`= 'no' ";
$sth = $sql->prepare($query);
$sth->execute();
while($row = $sth->fetch(PDO::FETCH_ASSOC)) {
foreach($row as $key => $value) { $$key = $value; }
...
...
...
}
这是我的问题:
我需要
$key
来自列'group_sec
',相关的$value
来自列'group_name'
。这样一对$$key=>$value
可以返回此结果(例如)echo $sec_b;
返回:Project_B
您能帮我完成这个吗?
先感谢您
最佳答案
这将为您完成工作:
${$row['group_sec']} = $row['group_name'];
echo $sct_b;
输出:
Project_B
您可以在while循环中使用它(foreach可以删除):
while($row = $sth->fetch(PDO::FETCH_ASSOC)) {
${$row['group_sec']} = $row['group_name'];
...
// do something with $sct_b
...
}
或者,如果您的列名可能会更改,但位置将保持不变,则可以使用
while($row = $sth->fetch(PDO::FETCH_NUM)) {
${$row[2]} = $row[3];
...
// do something with $sct_b
...
}
关于php - 如何在多项选择中选择并分配给特定的$ key,特定的$ value?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49852129/