数据库表中的网站设置

时间:2014-10-17 13:07:38

标签: php mysql foreach

我正在构建CMS,

CMS信息存储在名为mysql的{​​{1}}内database table

cms_settings table

我想获取cms_settings并将其存储到变量中,例如:

setting_value

我尝试使用$cms_url = ?; $cms_theme = ?; ,但我做不到。

mysqli_fetch_array()

但这不起作用!

非常感谢您的帮助,

3 个答案:

答案 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);

 ?>