Question

Je fais un forum en PHP. Je dois afficher toutes les catégories de forums dans une table, et pour le faire, j'ai utilisé une boucle de temps. Cependant, je veux avoir seulement 3 TD dans chaque rangée de table. Pour traverser les catégories, j'utilise une boucle de temps avec la requête, donc je ne pense pas pouvoir utiliser le module ici.

Était-ce utile?

La solution

Pourquoi ne pouvez-vous pas utiliser le module? Ajoutez simplement un comptoir quelque part, et s'il frappe % 3 == 0 Réinitialisez le comptoir et faites vos affaires.

Vous devrez peut-être faire un supplément si pour le premier et le dernier et des trucs comme ça, mais il n'y a aucune raison de ne pas utiliser un modulo avec un certain temps.

$i=0;
while(guard()){
    if($i % 3 == 0){
       //ploing
    }
 $i++
}

Autres conseils

Ce code fermera toutes les lignes supplémentaires:

<table>
<?php
$columns = 3;
$i = 0;
while($row = mysql_fetch_array($result)){
    $i++;
    //if this is first value in row, create new row
    if ($i % $columns == 1) {
        echo "<tr>";
    }
    echo "<td>".$row[0]."</td>";
    //if this is last value in row, end row
    if ($i % $columns == 0) {
        echo "</tr>";
    }
}
//if the counter is not divisible by the number of columns, we have an open row
$spacercells = $columns - ($i % $columns);
if ($spacercells < $columns) {
    for ($j=1; $j<=$spacercells; $j++) {
        echo "<td></td>";
    }
    echo "</tr>";
}
?>
</table>

Je n'ai pas testé le code, mais la logique devrait fonctionner:

<Table>
<?php
$i = 0;
while($row = mysql_fetch_array($result)){
    if($i == 0){
        echo"<TR>";
    }
    echo"<td>".$row[0]."<TD>";
    $i++;
    if($i == 3)
    {
        $i = 0;
        echo"</tr>"
    }
}
if($i ==1){
    echo "<td></td><td></td></tr>";
}
if($i ==2)
{
    echo "<td></td></tr>";
}
?>
<table>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top