2010-12-18 270 views
0

嗨我碰到了一些問題,我目前正在開發一個自定義CMS,允許用戶更改網站標題,描述,關鍵字和頁腳,以及其他各種設置,它們都保存在一個名爲site_settings的mysql表中,它有兩列幫助mysql查詢

設置和內容,設置列保存設置名稱,例如標題,內容保存諸如「welcome to my website」之類的信息,這些通過各種查詢加載到網站的工作很好,麻煩我有我想要加載信息到CMS中的表單域,我希望能做以下查詢

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

,然後使用創建一個信息的數組:

$content = mysql_fetch_array($query); 

,但只有這樣,才能得到的信息是使通過每一行循環,直到它到達結束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查詢像每一行呼應的信息10

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

有沒有辦法做到這一點?

在此先感謝,並對我的可怕解釋感到抱歉。 :d

回答

1

使用循環與mysql_fetch_row

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

這避免讀取整個結果集到一個數組,你然後丟棄。因此,它可能更有效率。

1

我真的不確定你到底想要什麼。但是,如果我正確地得到你的問題,你在找下面的:

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

在此之後,你有一個關聯數組,以及(如果我正確理解你的問題),你將能夠使用它像$finalResultObj['setting']獲取相關內容。

你確定這是你想要的嗎?

+0

是的,這就是他想要的。 – 2010-12-18 15:41:34

+0

對不起,我h​​avnt在這裏檢查一會兒,但這有助於感謝。 – RobFos 2011-02-09 10:42:28