从数组中分配变量

时间:2016-11-16 16:11:26

标签: php mysql arrays variables

我在我的数据库中创建了一个设置表,我想根据设置为变量赋值,我不知道如何去做。

表:设置

id | setting       | value
1  | setting_one   | value_one
2  | setting_two   | value_two
3  | setting_three | value_three

查询

if ($result = $db->query("SELECT * FROM settings")) {
   while($row = mysqli_fetch_assoc($result)) {
        $SettingOne   = $row['setting_one'];
        $SettingTwo   = $row['setting_two'];
        $SettingThree = $row['setting_three'];
    }
}

2 个答案:

答案 0 :(得分:0)

如果您的表中只有3行,则select将返回3行  这就是你在一段时间内处理结果的原因。

每个$row将包含您在查询中选择的列形式的Assoc数组。

在这种情况下,当您使用SELECT *时,$row数组将包含3次出现

id, setting, value

所以你的循环应该是

if ($result = $db->query("SELECT * FROM settings")) {
   while($row = mysqli_fetch_assoc($result)) {
        $id       = $row['id'];
        $setting  = $row['setting'];
        $value    = $row['value'];

        echo "The id = $id, the setting = $setting, the value is $value <br>";
    }
}

这将产生3行输出,假设您的表中只有3行

答案 1 :(得分:0)

我弄清楚了,只是将行[&#39;设置&#39;]作为每个的$设置回显:)

if ($result = $db->query("SELECT * FROM settings")) {   
    while($row = mysqli_fetch_assoc($result)) {
        $key = $row['setting'];
        $$key = $row['value'];
    }
$result->free();
$result->close();
}