我有一个包含多个列的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
你能帮我完成这件事吗?
提前谢谢
答案 0 :(得分:2)
这将为您完成这项工作:
${$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
...
}
答案 1 :(得分:0)
您可以使用$row['group_sec']
为密钥和$row['group_name']
构建基于您喜欢的密钥和值的数组,例如:
$query = "SELECT * FROM `groups` WHERE `sent`= 'no' ";
$sth = $sql->prepare($query);
$sth->execute();
while($row = $sth->fetch(PDO::FETCH_ASSOC)) {
$myArray[$row['group_sec']] = $row['group_name'];
}
你可以看到结果
foreach($myArray as $key => $value){
echo $key . ' - ' . $value . '<br>';
}
答案 2 :(得分:0)
line[i].append(item)