我将网站设置存储在如下表格中:
+---------+-------------+
| id | value |
+---------+-------------+
| 1 | title |
| 2 | description |
| 3 | email |
| 4 | keywords |
+---------+-------------+
如何选择它们并将它们分配给变量($ title,$ desc,$ email,$ key)
// Get Website Infos
$result=$db->query("SELECT `value` FROM `settings`");
if($result->num_rows >= 1){
$row=$result->fetch_assoc();
$otitle=$row['value'];
$odescription=$row['value'];
$oemail=$row['value'];
$okeywords=$row['value'];
}
但它只获得第一行'标题',任何想法如何做或更好的方法来保存设置。
更新
如果您现在正在阅读此问题,请不要使用此结构来存储您的设置,请使用黄鸟建议的答案。
答案 0 :(得分:5)
您必须使用fetch_assoc()
方法循环播放:
$result = $db->query("SELECT `value` FROM `settings`");
if ($result->num_rows >= 1){
$data = array();
while ($row = $result->fetch_assoc()) {
$data[] = $row['value'];
}
}
var_dump($data);
DanFromGermany在评论中注意到,您的数据库结构可能没有以正确的方式完成。你应该有这样的设计:
+---------+-------------+--------------+
| id | key | value |
+---------+-------------+--------------+
| 1 | title | title value |
| 2 | description | desc value |
| 3 | email | email value |
| 4 | keywords | keyw value |
+---------+-------------+--------------|
然后,您的代码将如下所示:
$result = $db->query("SELECT key, value FROM `settings`");
if ($result->num_rows >= 1) {
$data = array();
while ($row = $result->fetch_assoc()) {
$data[$row['key']] = $row['value'];
}
}