我在我的数据库中创建了一个设置表,我想根据设置为变量赋值,我不知道如何去做。
表:设置
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'];
}
}
答案 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();
}