有人可以帮我吗?
我有一个称为设置的MySQL表,该表包含一些配置信息(下面的布局):
+----+--------------+---------------+
| id | setting | value |
+----+--------------+---------------+
| 2 | partemail | @example.com |
| 3 | version | 2.1 |
| 4 | altrowcolour | #ffeff0 |
+----+--------------+---------------+
现在我想在PHP中做的是
"SELECT * from settings"
但是让它循环遍历并将值分配给一个变量,这样我就可以在整个脚本中调用它们,但是在设置列下有一个名为其变量的变量。
如此:
$ partemail等于“ @ example.com”
$ version等于“ 2.1”
$ altrowcolour等于“#ffeff0”
所以我尝试了以下方法:
$sql = "SELECT * FROM settings";
$result = $mysqli->query($sql);
$config = array();
$result = mysql_query("SELECT * FROM config");
while ($row = mysql_fetch_assoc($result)) {
$config[$row['name']] = $row['value'];
}
但这不是真的。
任何人都可以提供帮助,如果上述做法不是最好的做法,我表示歉意,我不是开发人员。
在此先感谢您的帮助。
J
答案 0 :(得分:1)
您的设置名称是“设置”,而不是“名称”
$sql = "SELECT * FROM settings";
$result = $mysqli->query($sql);
while ($row = mysql_fetch_assoc($result)) {
$config[$row['setting']] = $row['value'];
}
答案 1 :(得分:1)
请检索错误的列名。
$result = mysql_query("SELECT * FROM config");
$config = array();
while ($row = mysql_fetch_assoc($result)) {
$value = $row['value'];
$setting = $row['setting'];
$config[] = ['setting' => $setting, 'value' => $value];
}
编辑
仅使用mysqli
$conn = new mysqli($servername, $username, $password, $dbname);
$sql = "SELECT * FROM config";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$value = $row['value'];
$setting = $row['setting'];
$config[] = ['setting' => $setting, 'value' => $value];
}
}
$conn->close();
您可以像这样回显内容:
echo $config[0]['setting'];
echo $config[0]['value'];
答案 2 :(得分:0)
其他人的最终代码是:
$sql3 = "SELECT * FROM settings";
$result3 = $mysqli->query($sql3);
if ($result3->num_rows > 0) {
while ($row3 = $result3->fetch_assoc()){
$config[$row3['setting']]=$row3['value'];
}
}
echo $config['version'];
echo "<br>";
echo $config['partemail'];
echo "<br>";
echo $config['altrowcolour'];