我将网站设置存储在如下表中:
+---------+-------------+
| id | value |
+---------+-------------+
| 1 | title |
| 2 | description |
| 3 | email |
| 4 | keywords |
+---------+-------------+
Run Code Online (Sandbox Code Playgroud)
如何选择它们并将它们分配给变量($ 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'];
}
Run Code Online (Sandbox Code Playgroud)
但它只获得第一行'标题',任何想法如何做或更好的方法来保存设置.
更新:
如果您现在正在阅读此问题,请不要使用此结构来存储您的设置,在答案中使用Yellow Bird建议的那个.
你必须循环使用你的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);
Run Code Online (Sandbox Code Playgroud)
正如DanFromGermany在评论中注意到的那样,您的数据库结构可能没有以正确的方式完成.你应该有这样的设计:
+---------+-------------+--------------+
| id | key | value |
+---------+-------------+--------------+
| 1 | title | title value |
| 2 | description | desc value |
| 3 | email | email value |
| 4 | keywords | keyw value |
+---------+-------------+--------------|
Run Code Online (Sandbox Code Playgroud)
然后,您的代码将如下所示:
$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'];
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
95 次 |
| 最近记录: |