Aide petit script PHP comprehension

dubuducu Messages postés 395 Statut Membre -  
 giheller -
Bonjour,
voici mon code : je souhaiterai obtenir un tableau avec plusieurs colonnes.
Dès que l'affichage depasse 3lignes par colonnes, le script rajoute une colonne et ainsi de suite.
$tr = '0';
while ($liste=mysql_fetch_array($result)) 
{ 
   if($tr == '3')
   
   {$tr = '0' ;}
   
   if($tr == '0')
   {
      echo '<td>';
   }
   ?>
   <tr><a href="#<? 
   echo $liste['cat_nom']; 
   ?>">
   <? 
   echo $liste['cat_nom']; 
   ?>
   </a></tr>
   <?
   if($tr == '2')
   {
      echo '</td>';
   }
   $tr++;
}

Pourtant ce script ne m'affiche qu'une seule colonne avec toute les categorie a linterieur
Merci de votre aide
Configuration: Windows XP
Internet Explorer 7.0

9 réponses

  1. EminoMeneko Messages postés 2499 Statut Membre 318
     
    Voilà ton code indenté différemment
    // Attention tu utilises des caractères et pas des entiers !!!
    $tr = '0';
    while ($liste=mysql_fetch_array($result)) 
    {
    	if($tr == '3')
    	{
    		$tr = '0' ;
    	}
    	if($tr == '0')
    	{
    		echo '<td>';
    	}
    	?>
    	<tr>
    		<a href="#<? echo $liste['cat_nom']; ?>"><? echo $liste['cat_nom']; ?></a>
    	</tr>
    	<?
    	if($tr == '2')
    	{
    		echo '</td>';
    	}
    	$tr++;
    }
    

    J'ai l'impression que c'est n'importe quoi. Tu t'y prends mal. Je vais essayer de te proposer une correction.
    En fait tu veux une nouvelle ligne toutes les 3 colonnes c'est ça ?
    0
  2. giheller
     
    Bonjour,

    <tr> définit une ligne
    <td> définit une colonne
    OK mais les td sont mal placés

    0
    1. EminoMeneko Messages postés 2499 Statut Membre 318
       
      Oui c'est ce que j'avais remarqué

      En HTML pure
      ton source HTML devrait ressembler à ça
      <tr>
         <td><a href="...">...</a></td><td><a href="...">...</a></td><td><a href="...">...</a></td>
         <td><a href="...">...</a></td><td><a href="...">...</a></td><td><a href="...">...</a></td>
         <td><a href="...">...</a></td><td><a href="...">...</a></td><td><a href="...">...</a></td>
         ...
      </tr>
      


      A noter que pour la première ligne tu pourrais aussi utiliser TH (Table Header) au lieu de TD (Table Data)

      Bon si j'ai bien compris pas besoin de proposer de correction. :)
      0
  3. dubuducu Messages postés 395 Statut Membre 4
     
    je souhaite une nouvelle colonne toutes les 3 lignes par exemple du type :
    A D G
    B E H etc
    C F
    0
    1. EminoMeneko Messages postés 2499 Statut Membre 318
       
      Ah !
      Là c'est plus compliqué parce que les tableaux ont un sens en HTML et toi tu semble vouloir les utiliser dans l'autre sens.
      0
    2. giheller
       
      oui j'ai bien saisi

      if (tr==0) { echo "<tr>"; tr++;}
      if (tr==2) { echo "</tr>"; tr=0;}
      echo "<td>".$mon truc."</td>";
      0
  4. dubuducu Messages postés 395 Statut Membre 4
     
    Excusez moi mais je n'ai rien pigé ...
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dubuducu Messages postés 395 Statut Membre 4
     
    @giheller : Votre code me donne A B C D E F G de cette maniere.
    if ($tr== '0') 
    { 
    echo "<tr>"; 
    $tr++;
    } 
    if ($tr== '2') 
    { 
    echo "</tr>"; 
    $tr= '0';
    } 
    echo "<td>".$liste['cat_nom']."</td>"; 
    
    0
    1. giheller
       
      if (tr==0) { echo "<tr>"; tr++;}

      echo "<td>".$mon truc."</td>";
      $td++;

      if (td==2) { echo "</tr>";$tr=0; $td=0;}

      0
  7. dubuducu Messages postés 395 Statut Membre 4
     
    je suis vraiment désolé de paraitre si naif mais je ne pige vraiment rien a votre technique.
    if ($tr== '0') 
    { 
    echo "<tr>"; 
    $tr++; // j'incremente les lignes
    } 
    if ($tr== '2')  // dès que j'ai deux lignes je remet $tr a zero
    { 
    echo "</tr>"; 
    $tr= '0';
    } 
    echo "<td>".$liste['cat_nom']."</td>"; // ici je ne vois pas pourquoi l'affichage des td se fait ici 
    


    Excusez moi encore
    0
    1. giheller
       
      voir le nouveau code envoyé--
      JL, 
      0
  8. dubuducu Messages postés 395 Statut Membre 4
     
    La c'est parfaitement clair, je teste ce code et je vous tien au courant.
    0
  9. dubuducu Messages postés 395 Statut Membre 4
     
    Merci Giheller pour vos lumieres ! Cela fonctionne parfaitement ! Merci une nouvelle fois
    0
  10. giheller
     
    l'idée est quand tr=0 c'est une nouvelle ligne
    quand a-t-on une nouvelle ligne ?
    quand on a écrit 3 colonnes (donc on compte jusqu'à 3 les colonnes) et on remet tr à zero pour une nouvelle ligne
    et td à zero pour recompter jusqu'à 3
    (comptage de zero à 2)
    0