2012-04-21 66 views
1

我有一個返回多維數組從我的DB,看起來像這樣PHP動態表顯示

$prices = array(); 

    /*some SQL coding */ 
print_r($prices); 
     Array 
    (
      [0] 
       [id] => 1 
       [title] => XT1 Comp 
       [young] => 50 
       [mid] => 50 
       [old] => 120 
      [1] 
       [id] => 2 
       [title] => HH3 Enginee 
       [young] => 150 
       [mid] => 170 
       [old] => 220 
    ) 

到目前爲止好。但是如何最好地把它作爲動態表格來打印呢?我有點卡住,任何提示都非常順利

我希望有人可以提供幫助。我希望像這樣的outpus:

id | title  | young| mid| old 
1 | XT1 Comp | 50 | 50 | 120 
and so one for each row/array index or line 

親切的問候 亞歷

編輯 - >這是我如何得到它們。

$result_array = array(); 
     while($line = mysql_fetch_array($result, MYSQL_ASSOC)) 
      { 
      $result_array[] = $line; 
     } 

     return $result_array 

回答

2

您可以使用PHP的foreach輸出每個項目的$prices

<?php 
function queryResultAsTable($results) { 
    if(count($results) == 0) { 
     echo '<em>No rows returned</em>'; 
    } else { 
     echo '<table><thead><tr><th>'.implode('</th><th>', array_keys(reset($results))).'</th></tr></thead><tbody>'."\n"; 

     foreach($results as $result) { 
      echo '<tr><td>'.implode('</td><td>', array_values($result)).'</td></tr>'."\n"; 
     } 

     echo '</tbody></table>'; 
    } 
} 

queryResultAsTable($prices); 
+0

這個不錯的功能讓我改變了我接受的人。恥辱我不能給你同樣的信貸額度。 。 – 2012-04-21 19:27:18

+0

@AlexanderGrosse謝謝:) – 2012-04-21 19:28:20

+0

如何編輯此功能,以便讓每行的每個值在可編輯的輸入字段中?那太棒了! – 2012-04-21 19:33:11

2

使用一個循環:

foreach($prices as $row) { 
    echo '|' . $row['id'] . '|' . $row['title'] . '|' . $row['young'] . '|'; 
    echo '|' . $row['mid'] . '|' . $row['old'] . '|'; 
} 

它會經過的每一行,並允許您訪問每個列的值。

編輯:

如果使用mysql_query();得到的結果再經過你使用它使用以下命令:

while($row = mysql_fetch_assoc($query_result)) { 
    // Same echo stuff here 
} 
+0

這樣做的工作?爲每個「數組名稱」行。所以我假設$ row = array index/line及其所有值。所以一旦它達到「老」的價值,例如$行結束,如果存在,則開始新行! – 2012-04-21 18:50:14

+1

沒錯。它遍歷每一行。一旦它完成了最後它退出循環。 – gimg1 2012-04-21 18:52:31

+0

然後排序,thx男人。不知道爲什麼我被困在那個傳說中! – 2012-04-21 18:55:04