2011-08-27 333 views
0

我想將數值從db分配給2d數組,但它只顯示最後的iterms。將值賦給2d數組

下面是代碼:

while($row = mysql_fetch_array($results)){ 
$MyData = array(array("Focus Area", $row["FocusArea"]), 
       array("Finding Title", $row["FindingTitle"]), 
       array("Finding Detail", $row["FindindDetail"]) 
      ); 

}//End While 

什麼我做錯了,請幫助。

回答

2
$MyData[] = $row; 

就足以

我也建議做一個函數,從數據庫得到一個數組是一種很常見的程序。
所以,你就可以得到一個行數據,

$myData = getRows("SELECT * FROM table"); 
+0

AAH @col。我經過這麼長時間纔看到你:),爲推薦更好的解決方案+1。我唯一不喜歡的查詢是你使用了'*',這被認爲是不好的做法 –

0

你每個循環運行時間宣佈新的數組。將其聲明爲while循環,並添加新值。

$MyData = array(); 
while($row = mysql_fetch_array($results)){ 
$MyData[] = array(array("Focus Area", $row["FocusArea"]), 
       array("Finding Title", $row["FindingTitle"]), 
       array("Finding Detail", $row["FindindDetail"]) 
      ); 

}//End While 
+1

'$ MyData []。='中的''用於字符串連接,所以它在這裏使用是錯誤的(數組將變成一個字符串...) – KillerX

+0

你不應該對數組使用'。='。 –

0
$myData = array(); 
while($row = mysql_fetch_array($results)){ 
$MyData[] = array(array("Focus Area", $row["FocusArea"]), 
       array("Finding Title", $row["FindingTitle"]), 
       array("Finding Detail", $row["FindindDetail"]) 
      ); 

}//End While 

這將這樣的伎倆

+0

聲明您將要使用的數據類型總是更好。所以最初它應該是'$ myData = array()'而不是僅僅聲明它。 –

+0

你是對的,編輯... –