2012-04-21 37 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