Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何创建类似wordpress的选项表并获取每行的值?_Php_Data Structures_Mysql - Fatal编程技术网

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

Php 如何创建类似wordpress的选项表并获取每行的值?,php,data-structures,mysql,Php,Data Structures,Mysql,我希望在数据库中创建一个选项表,使每个记录都成为一个系统选项,这样我就可以处理少量字段 My db具有以下结构: 名为id、name和value的3列 插入以下数据作为示例: +--+-----------+--------------------------+ |id|name |value | +--+-----------+--------------------------+ | 1|uri |www.example.co

我希望在数据库中创建一个选项表,使每个记录都成为一个系统选项,这样我就可以处理少量字段

My db具有以下结构:

名为id、name和value的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的值并将其存储为var? 更好的是,对于exmaple,如何只获取id为1和4的值,而不必每次进行查询?我认为多个查询是无用的,而且是一个非常丑陋的方法

我知道这个问题很基本,但我在这里迷路了。
我非常感谢你的回答

这里有一些东西可以让你开始。不包括错误检查或其他细节。我假设您的数据库名为$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\u 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 );
这就是你要找的吗?转到以获取所需的所有信息。例如:

用法:

echo $value['variable_name'];

这是什么样的项目?什么语言/平台/框架?我想我错过了那部分:我正在PHP和MySQL上工作。没有什么花哨的补充。多纳尔,谢谢你编辑这个问题,并给它一个合适的格式!伟大的谢谢我想我走的路是对的。我有一个类似的代码。但是,我不知道如何获得其中一个选项的值。如果我这样做,我什么也得不到,因为行不存在。对不起,我可能没有解释清楚。我想要避免的是对每个参数进行查询。例如,我一直在网站上使用while{}来列出用户。我觉得我需要在这里使用另一个函数,但我不知道是哪一个。再次感谢!我不确定我是否理解您的意思,如果行不存在,那么您的查询就没有将其拉入,但听起来您可能认为您的while循环正在执行多个查询。但事实并非如此。唯一的查询是在调用mysql\u查询时发生的。您可以执行一个查询来获取一个参数,然后对多个参数执行多个查询,或者执行一个查询来获取多个参数,然后从结果中一次检索一行。抱歉,看起来我无法很好地解释。正如上面的例子一样,我为每个站点选项提供了一个条目,而不是一个包含许多行的条目表,其中每个行都可以是一个选项。我想做的是,为每个条目获取第三行的值,并将每个条目存储为var或数组。因此,如果我执行并回显站点参数'base_folder',它是ID为3的条目,它会给我值'/folder1/folder2/'。对于数据库中的每个条目,我都需要它,并且我认为它可以在不查询每个条目的情况下完成。可以吗?谢谢回答:D
echo $value['variable_name'];