我有一个包含多列的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/

10-12 03:56