2009-07-29 2 views
0

Как бы я попытался наложить ограничение на количество столбцов таблицы HTML при запросе базы данных.Выходные данные PHP/MySQL в TD's

К примеру, у меня есть таблица MySQL со следующими значениями:

myTable: 
    id  color 
    1  red 
    2  blue 
    3  green 
    4  pink 
    5  purple 

И когда я запускаю мой запрос, вместо того чтобы показывать все строки в традиционных строках таблицы, например,

<table> 
<?php 
    while { 
    echo "<tr><td>$row['color']</td></tr>; 
     } 
?> 
</table> 

Вместо этого я хотел бы наложить что-то, где, каждые три td, создается новый tr.

Например, было бы вывести что-то вроде этого:

<table> 
    <tr> 
    <td>red</td> 
    <td>blue</td> 
    <td>green</td> 
    </tr> <-- Notice how after 3 columns, a new table row is created. 
    <tr> 
    <td>pink</td> 
    <td>purple</td> 
    </tr> 
    </table> 

Любой путь для достижения этой цели?

ответ

2

Для того, чтобы достичь этого, вы можете использовать комбинацию счетчика и оператора modulus (%):

<table> 
<?php 
    $count = 0; 
    while($row = mysql_fetch_array($results)) { 
    $outputTr = ($count % 3) == 0; 

    if($outputTr) echo '<tr>'; 

    echo '<td>' . $row['color'] . '</td>'; 

    if($outputTr) echo '</tr>'; 

    $count++; 
    } 
?> 
</table> 
+0

Итак, мы снова встретимся по еще одному вопросу. –

+0

Не могу спать, прежде чем получить 200! –

+0

У меня есть мои на вчерашний день, и у ТОГО было 6 upvotes .... Отбросил меня. –

1

для того чтобы достигнуть этого, положить в простой счетчик, который сбрасывает каждые 3 таблицы ДАННЫЕ.

<?php 
echo "<table><tr>"; 
$count = 0; 
foreach($data as $key => $color) 
{ 
    if($count == 3) 
    { 
     $count = 0; 
     echo "</tr><tr>"; 
    } 
    $count++; 
    echo "<td>".$color."</td>"; 
} 
echo "</tr></table>"; 
?> 
+0

+1: Код действителен! –

Смежные вопросы