我希望在我的数据库中创建一个选项表,使每个记录成为系统选项,因此我可以使用少量字段。
我的数据库具有以下结构:
id
,name
和value
插入以下数据作为示例:
+--+-----------+--------------------------+
|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的值? (我假设多个查询都是无用的,而且是一种非常难看的方法。)
我知道这个问题非常基本,但我迷失在这里。 我真的很感激你的回答!
答案 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获取您需要的所有信息。例如:
答案 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'];