2012-04-21 6 views
1

У меня есть возвращенное мульти двумерный массив из моей БД, выглядящий как этот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 

Сердечные приветы Alex

EDIT -> это то, как я их получить.

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

     return $result_array 

ответ

2

Вы можете использовать PHP Еогеасп для вывода каждого из элементов в $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

эта небольшая приятная функция заставила меня меняться, кто я принимаю. Стыдно, я не могу дать вам и то же количество кредита. , –

+0

@AlexanderGrosse Спасибо :) –

+0

Как вы можете отредактировать эту функцию, чтобы каждая строка каждого значения в редактируемом поле ввода ??? это будет потрясающе !! –

2

использовать цикл:

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

Он будет проходить через каждую строку и позволяет получить доступ к каждому значению столбца.

EDIT:

Если вы используете mysql_query();, чтобы получить результаты, то после того, как вы используете его использовать следующее:

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

, выполняющий эту работу? для каждого «имени массива» в виде строки. Поэтому я предполагаю, что в качестве $ row = array index/line со всеми его значениями. Поэтому, когда он достигает значения для «старого», например. строка $ заканчивается, начиная новую, если существует! –

+1

Точно. Он проходит через каждую строку. Как только он заканчивается с последним, он выходит из цикла. – gimg1

+0

отсортировано тогда, thx человек. Не знаю, почему я застрял на этом, легенда! –