我正在构建CMS,
CMS信息存储在名为mysql
的{{1}}内database
table
我想获取cms_settings
并将其存储到变量中,例如:
setting_value
我尝试使用$cms_url = ?;
$cms_theme = ?;
,但我做不到。
mysqli_fetch_array()
但这不起作用!
非常感谢您的帮助,
答案 0 :(得分:1)
您需要循环搜索结果。也许尝试这样的事情:
<?php
require('db.php');
$settings = array();
$s = mysqli_query($conn, "SELECT * FROM cms_settings");
while($row = mysqli_fetch_assoc($s)) {
$settings[$row['setting_name']] = $row['setting_value'];
}
编辑:添加将您的设置保存到数组中。
edit2:如果你想获得特定的设置,可以把它放在一个函数中。
function getSetting($name) {
require('db.php');
$name = mysqli_real_escape_string($conn, $name);
$s = mysqli_query($conn, "SELECT * FROM cms_settings WHERE `setting_name` = '{$name}'");
while($row = mysqli_fetch_assoc($s)) {
return $row['setting_value'];
}
return false;
}
答案 1 :(得分:0)
它没有用,因为你的数组是$ I而你的foreach循环是循环遍历$ key =&gt;值,但在你的foreach中你仍然引用$ i。
相反,这样做:
while($row = mysqli_fetch_array($s)) {
$cms_url = $row['cms_url'];
}
修改强>
在这种情况下,foreach循环并不理想,因为你会争取给每个结果一个唯一的变量名,因为foreach循环将遍历每个数组项并将所需的任务应用于当前值
答案 2 :(得分:0)
您可以创建一个名为“cms_settings”的数组,并使用结果中的键填充数组
<?php
require('db.php');
$s = mysqli_query($conn, "SELECT * FROM cms_settings");
$i = mysqli_fetch_assoc($s);
$cms_settings= array();
foreach($i as $row)
{
$cms_settings[$row['setting_name']] = $row['setting_value'];
}
/* show a setting */
echo 'CMS url is: '.$cms_settings['cms_url'];
/* show all settings */
print_r($cms_settings);
?>