2009-07-29 4 views
0

Comment pourrais-je imposer une restriction sur le nombre de colonnes de table HTML lors de l'interrogation de la base de données.Données de sortie PHP/MySQL dans les TD

Par exemple, j'ai une table MySQL avec les valeurs suivantes:

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

Et quand je lance ma requête, au lieu d'afficher toutes les lignes en rangées de table traditionnels, par exemple Au lieu de cela, je voudrais imposer quelque chose où, tous les trois td, un nouveau tr est créé.

Par exemple, il serait quelque chose comme de sortie ceci:

<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> 

Toute façon d'y parvenir?

Répondre

2

Pour ce faire, vous pouvez utiliser une combinaison d'un compteur et un opérateur 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

Donc, nous nous rencontrons à nouveau sur une autre question. –

+0

Je ne peux pas dormir avant d'avoir mon 200! –

+0

J'ai eu le mien pour hier et a eu 6 upvotes .... Cochez-moi. –

1

Pour ce ACHIVE, mettre dans un simple compteur qui remet à zéro tous les 3 données de table.

<?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: Le code est valide! –

Questions connexes