帮助mysql查询

时间:2010-12-18 15:12:23

标签: php mysql

您好我遇到了一些问题,我正在开发一个自定义CMS,允许用户更改网站标题,说明,关键字和页脚,以及各种其他设置,这些都是保留的在一个名为site_settings的mysql表中,它有两列

设置和内容,设置栏保存设置名称,例如标题,内容包含“欢迎来到我的网站”等信息,这些都是通过各种查询加载到网站中的,效果很好,麻烦我我希望将信息加载到CMS中的表单字段中,我希望通过以下查询进行操作

$query  = mysql_query("SELECT `setting`, `content` FROM `site_settings`");

然后使用以下命令创建一个包含信息的数组:

$content = mysql_fetch_array($query);

但获取信息的唯一方法是创建一个while语句,循环遍历每一行直到它到达结尾,但我想要做的是使用我的表中的设置列作为主要标识符检索内容

例如目前使用while数组我的数组看起来像这样:

Array ( [0] => title [1] => title [2] => title [3] => title )
Array ( [0] => keywords [1] => keywords [2] => keywords [3] => keywords )
Array ( [0] => description [1] => description [2] => description [3] => description )
Array ( [0] => footnote [1] => footnote [2] => footnote [3] => footnote )
Array ( [0] => notice_state [1] => notice_state [2] => 1 [3] => 1 )
Array ( [0] => maintenance_state [1] => maintenance_state [2] => 1 [3] => 1 )
Array ( [0] => notice_message [1] => notice_message [2] => notice [3] => notice )
Array ( [0] => maintenance_message [1] => maintenance_message [2] => maintenance [3] => maintenance )
Array ( [0] => about_us [1] => about_us [2] => about us [3] => about us )
Array ( [0] => article_shorten_length [1] => article_shorten_length [2] => 80 [3] => 80 )

所以id必须遍历它们以检索所有信息,并使用以下语句:

while($content = mysql_fetch_array($query)) {
   echo $content['content'];
}

但我想要做的就是将它们全部放入一个包含1个或几个mysql语句的数组中

Array (

title -> 'welcome to my website',
description -> 'this is my website',
)

等...

只需通过调用我的数组中的设置列来回显信息,而不使用while语句,并且每行都没有单独的mysql查询,如:

$content['title'];
$content['description'];

有办法做到这一点吗?

提前致谢,对不起我的糟糕解释感到抱歉。 :d

2 个答案:

答案 0 :(得分:1)

使用mysql_fetch_row的循环:

while ($row = mysql_fetch_row($query))
{
    $content[$row[0]] = $row[1];
}

这可以避免将整个结果集读入您随后丢弃的数组中。因此,它可能更有效率。

答案 1 :(得分:1)

我真的不确定你到底想要什么。但是,如果我正确地提出您的问题,您是否正在寻找以下内容:

while($content=mysql_fetch_array($query))
    $finalResultObj[$content['setting'] ] = $content['content'];

在此之后,您有一个关联数组,并且(如果我已正确理解您的问题)您可以像$finalResultObj['setting']一样使用它来获取相关内容。

你确定,这就是你想要的吗?