您好我遇到了一些问题,我正在开发一个自定义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
答案 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']
一样使用它来获取相关内容。
你确定,这就是你想要的吗?