2013-02-16 52 views
-1

我試圖使用while循環創建一個$ key => $ values的數組,其中$ key是相等的來自db_query的值。我認爲語法不正確

function _form(){ 

$person = db_query("SELECT name FROM {person}");     
$columnValues = Array(); 

while ($row = db_fetch_array($person)) { 
    $columnValues[] = array($row['name']=> $row['name']); 
} 
. 
. 
. 

我有幾個問題。

  1. 我需要創建一個鍵來提取實際的「選擇」菜單項的值嗎?
  2. 如果我需要創建一個鍵,是否有一種方法在while循環中不爲每個被相同值鍵值的元素創建一個新的數組(例如,apple => apple)
  3. 什麼是正確的從複選框中拉出值的方法和選擇,所以我得到一個字符串,而不是一個有序的數字? (例如form_values ['value'] ['select_name'],form_values ['value'] ['checkboxes_name'],以便第一次返回選定的項目'apple',第二個項目'apple'。)...我喜歡蘋果。

回答

2

你似乎在這裏犯了一個錯誤 - 在鍵值對,值不能是數組

while ($row = db_fetch_array($person)) { 
    $columnValues[] = array($row['name']=> $row['name']); 
} 

應該

while ($row = db_fetch_array($person)) { 
    $columnValues[$row['name']] = $row['name']; 
} 

答案:

  1. 是的,你應該總是添加一個鍵值對 - 因爲價值是什麼被顯示和關鍵是什麼g ets以表單提交。
  2. 是上面解釋瞭如何爲每個項目創建key => value pair而不是key => value對的數組。
  3. 單獨的複選框項目具有值,您可以將複選框的值設置爲與顯示的值相同。
+0

嗨,謝謝,你知道爲什麼這個問題是downvoted? – ingrid 2013-02-16 13:18:42

相關問題