如何创建类似wordpress的选项表并获取每行的值?

时间:2010-05-06 19:49:21

标签: php data-structures mysql

我希望在我的数据库中创建一个选项表,使每个记录成为系统选项,因此我可以使用少量字段。

我的数据库具有以下结构:

  • 名为idnamevalue
  • 的3列

插入以下数据作为示例:

+--+-----------+--------------------------+
|id|name       |value                     |
+--+-----------+--------------------------+
| 1|uri        |www.example.com           |
| 2|sitename   |Working it out            |
| 3|base_folder|/folder1/folder2/         |
| 4|slogan     |Just a slogan for the site|
+--+-----------+--------------------------+

这样我就可以很容易地包含大量可自定义的系统选项。

问题在于我不知道如何检索它们。 如何获取uri and的值将其存储为var? 更好的是,如果不是每次都进行查询,我怎样才能获得id 1和4的值? (我假设多个查询都是无用的,而且是一种非常难看的方法。)

我知道这个问题非常基本,但我迷失在这里。 我真的很感激你的回答!

2 个答案:

答案 0 :(得分:0)

这是让你入门的东西。没有错误检查或其他细节包括在内。我假设您的数据库名称是$ db_name,上面描述的表名为'site_params'。

从表中获取单个参数...

// select your db
mysql_select_db($db_name);

// get the uri setting
$query = "SELECT value FROM site_params WHERE name='uri'";
$result = mysql_query( $query );

如果没有太多设置,您可以立即获取所有设置......

// get all the settings
$query = "SELECT * from site_params";
$result = mysql_query( $query );

或者得到一些......

// get uri and sitename
$query = "SELECT * from site_params where name in ('uri', 'sitename') ";
$result = mysql_query( $query );

您可以通过添加...

将结果作为名为$ site_info的数组接收
$site_info = mysql_fetch_array($result, MYSQL_ASSOC);

澄清:这会在$ site-info中添加一行。重复调用它以获得多行结果。

更改其中一个参数......

// set new sitename
$newsitename = 'http://mynewsite.com';
$query = "UPDATE site_params SET value='" . $newsitename . "' where name='sitename'";
$result = mysql_query( $query );

这就是你要找的东西吗?转到http://php.net获取您需要的所有信息。例如:

http://php.net/manual/en/function.mysql-query.php

答案 1 :(得分:0)

$values = array();
$q = "SELECT * FROM table";
$resu = mysql_query($q);

while ($row = mysql_fetch_array($resu)) {
    $values[$row['name']] = $row['value'];
}

用法:

echo $value['variable_name'];