Problème de boucle php
        Bonjour à tous, 
J'ai un problème d'affichage de tableau. j'ai voudrais un tableau de 4 colonnes et 3 lignes mais il s'affiche comme ceci :
janvier fevrier mars
n°1 n°3 n°5
n°2 n°4 n°6
avril mai juin juillet
n°9 n°11 n°13 n°15
n°10 n°12 n°14 n°16
aout septembre octobre novembre decembre
n°17 n°19 n°21 n°15 n°23
n°18 n°20 n°22 n°16 n°24
code :
<?php
 
if (isset($_GET['annee'])){
$an=$_GET['annee'];
echo "<center> ANNEE ".$an."</center><br><br>";
 
$req = mysql_query("SELECT DISTINCT id_jo, num_jo, date_jo, type_jo FROM jo where DATE_FORMAT(date_jo,'%Y')='$an' ORDER BY date_jo ASC;");
$res = mysql_num_rows($req);
$i=0; $mois = ""; $j=0; $lien = "";
 
$nb_col = 4;
$k=0;
 
echo '<table width="75%" border="1">';
WHILE ($i < $res){
 
$id = mysql_result($req,$i,"id_jo");
$num = mysql_result($req,$i,"num_jo");
$type = mysql_result($req,$i,"type_jo");
$dat = mysql_result($req,$i,"date_jo");
list($year, $month, $day) = explode("-", $dat);
$months = array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin",
"Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre");
$aux = $months[$month-1];
 
if ($k == $nb_col) {
echo "</tr>";
$k=0;
}
if ($k==0) {
echo "<tr>";
}
 
if ($aux != $mois) { if ($mois != '')
echo "<td valign='top' align='center' width=15% height=1 ><font color='blue'>".$mois."<br><br>".$lien."</font></td>";
$mois = $aux; $lien = ""; $k++;
}
 
$lien .= "\r\n <a href=rechercheannee3essai.php?n=$id>$type n° $num</a> <br> \r\n";
$i++;}
 
echo "<td valign='top' align='center' width=50% height=1><font color='blue'>".$mois. "<br><br>".$lien."</td></font>";
 
 
echo '</table>'; }
mysql_close();
?>
merci d'avance.
                
            
                
    
    
    
        J'ai un problème d'affichage de tableau. j'ai voudrais un tableau de 4 colonnes et 3 lignes mais il s'affiche comme ceci :
janvier fevrier mars
n°1 n°3 n°5
n°2 n°4 n°6
avril mai juin juillet
n°9 n°11 n°13 n°15
n°10 n°12 n°14 n°16
aout septembre octobre novembre decembre
n°17 n°19 n°21 n°15 n°23
n°18 n°20 n°22 n°16 n°24
code :
<?php
if (isset($_GET['annee'])){
$an=$_GET['annee'];
echo "<center> ANNEE ".$an."</center><br><br>";
$req = mysql_query("SELECT DISTINCT id_jo, num_jo, date_jo, type_jo FROM jo where DATE_FORMAT(date_jo,'%Y')='$an' ORDER BY date_jo ASC;");
$res = mysql_num_rows($req);
$i=0; $mois = ""; $j=0; $lien = "";
$nb_col = 4;
$k=0;
echo '<table width="75%" border="1">';
WHILE ($i < $res){
$id = mysql_result($req,$i,"id_jo");
$num = mysql_result($req,$i,"num_jo");
$type = mysql_result($req,$i,"type_jo");
$dat = mysql_result($req,$i,"date_jo");
list($year, $month, $day) = explode("-", $dat);
$months = array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin",
"Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre");
$aux = $months[$month-1];
if ($k == $nb_col) {
echo "</tr>";
$k=0;
}
if ($k==0) {
echo "<tr>";
}
if ($aux != $mois) { if ($mois != '')
echo "<td valign='top' align='center' width=15% height=1 ><font color='blue'>".$mois."<br><br>".$lien."</font></td>";
$mois = $aux; $lien = ""; $k++;
}
$lien .= "\r\n <a href=rechercheannee3essai.php?n=$id>$type n° $num</a> <br> \r\n";
$i++;}
echo "<td valign='top' align='center' width=50% height=1><font color='blue'>".$mois. "<br><br>".$lien."</td></font>";
echo '</table>'; }
mysql_close();
?>
merci d'avance.
        A voir également:         
- Problème de boucle php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Mise à disposition de boucle locale dédiée ✓ - Forum Freebox
- Boucle excel sans macro - Forum Excel
- Télé samsung s'éteint et se rallume en boucle - Forum Téléviseurs
2 réponses
                        
                    Moi je serais toi j'utiliserais l'opérateur modulo (%) avec 4 comme seconde opérande et un compteur qui évolue constamment.
                
                
    
                0%4 -> 0 1%4 -> 1 2%4 -> 2 3%4 -> 3 4%4 -> 0 5%4 -> 1 6%4 -> 2 7%4 -> 3 8%4 -> 0 etc.
                
        
     
             
                    bilane
    
        
    
                    Messages postés
            
                
     
             
            13
        
            
                                    Statut
            Membre
                    
    
    
    excuse moi, je suis debutante. je n'ai pas compris  modulo (%). si vous pourriez m'expliquer . merci.
    
    
                        
                    Quelques détails :
Avant le </table> il te manque un <tr></tr> :
Il te manque également un </tr> pour la dernière ligne que tu sors, donc :
tu devrais définir le $months en dehors de la boucle... il le refait à chaque fois pour rien !
                
                
    
                Avant le </table> il te manque un <tr></tr> :
echo "<tr><td valign='top' align='center' width=50% height=1>".$mois. "<br><br>".$lien."</font></td></tr>";
Il te manque également un </tr> pour la dernière ligne que tu sors, donc :
echo "</tr><tr><td valign='top' align='center' width=50% height=1>".$mois. "<br><br>".$lien."</font></td></tr>";
tu devrais définir le $months en dehors de la boucle... il le refait à chaque fois pour rien !
