Prob de tableau dynamique
			
		
	 
	
	
		Bonjour,
Voilà je veux recuperer une liste de pages dans ma base de données et ensuite les afficher dans un tableau avec une ligne de 3 enresigtrements :
ligne 1  :  page 1        page 2         page 3
ligne 2  :  page 4        page 5         page 6
ligne 3  :  page 7        page 8         page 9
....
Je ne vois pas comment faire, je récupere les infos via un mysql_fetch_array().
Vous pouvez me guider ?
Merci d'avance	
	
			
		
	 
	
	
			zebdinou pour les intimes / Blog : http://www.zebden.fr
				
				
		
			
		
	 
	
	
		oki merci du lien,
if($i%$nbcol==($nbcol-1))  
    echo '</tr>';
le % revient à diviser ? ne pas mettre de {} pour le if c'est syntaxiquement correct ?	
 
	
		le 16/06/2004 à 13:36
		Layer
	 
	
		% = modulo
il te donne le reste de la division la division
il vaut mieux mettre les acolades	
			Error 500 : internal brain error
		
			
		
	 
	
	
		pour juste une action les accolades ne sont pas obligatoires au dela oui il faut les mettre	
			zebdinou pour les intimes / Blog : http://www.zebden.fr
		
			
		
	 
	
	
		Oui mais l'action doit se situer a droite du if non pas en dessous ?	
	
			
		
	 
	
	
		C'est pareil :)	
	
			
		
	 
	
	
		Me revoilà, j'avais un peu oublié ce prob, mais en fait je me suis servi de ton bout de code la glob, mais y a un moment ou ca bloque voici mon code :
<?
				// Recuperation de toutes les pages disponibles
				$sql = "SELECT * FROM ".$table_pages."";
				$query = mysql_query($sql) or die("Erreur sur $sql :<br><br>".mysql_error());
				
				while($data = mysql_fetch_array($query)){
				$tab[] = $data;
				}
				$nbcol = 3;
				
				for($i=0;$i<count($tab);$i++){ 
			    
			    $id=$tab[$i]['id'];  
			    $nom_page=$tab[$i]['nom_page'];  
			
			    if($i%$nbcol==0) { echo "<tr>";  }
				
			    echo "<td class=\"listelt\"><input type=\"checkbox\" name\"check[$i]\" value=\"".$id."\"> ".$nom_page."</td>";  
			
			    if($i%$nbcol==($nbcol-1)) { echo "</tr>"; }  
				
				}  
				
				
				
				
				?>
En fait ca m'affiche bien sur trois colonnes mais au niveau de la derniere ligne malheureusement les cellues non remplies ne sont pas de la meme couleur. Je ne sais pas comment faire pour que ces cellules soient de la meme couleur.
Il faudrait en fait soit :
- les créer avec rien dedans
- faire un colspan mais pour récupérer le nbre de cellules non remplies c'est toujours galere :(
Aidez moi	
 
	
	
		Slt, 
Une idée toute bête :
Quand tu sort du for ton tableau n'est pas fermé (pa de /tr) quand tu $i!= d'un multiple de 3. 
Si tu rajouteune variable metton $a dans le 
if($i%$nbcol==0) { echo "<tr>"; $a=0 }
sous le echo '<td> ....'; tu rajoute $a++;
Apres le for tu ajoute :
if ($a!=2){
for ($z=0;$z<(3-$a);$z++) echo '</td>';
echo '</tr>' ;}
Je m'explique : quand tu créer une nouvelle ligne tu met $a=0 et a chaque colone tu l'incremente donc quand tu sort du for tu a le nb de colone utilisée sur la dernière ligne ($a). J'utilise $a parce que je ne sais pas si le $i 'existe' encore sortie du for :)
=>
<? 
        // Recuperation de toutes les pages disponibles 
        $sql = "SELECT * FROM ".$table_pages.""; 
        $query = mysql_query($sql) or die("Erreur sur $sql :<br><br>".mysql_error()); 
         
        while($data = mysql_fetch_array($query)){ 
        $tab[] = $data; 
        } 
        $nbcol = 3; 
         
        for($i=0;$i<count($tab);$i++){ 
           
          $id=$tab[$i]['id'];   
          $nom_page=$tab[$i]['nom_page'];   
       
          if($i%$nbcol==0) { echo "<tr>"; $a=0; } 
         
          echo "<td class=\"listelt\"><input type=\"checkbox\" name\"check[$i]\" value=\"".$id."\"> ".$nom_page."</td>";   
       
          if($i%$nbcol==($nbcol-1)) { echo "</tr>"; }   
         
        }
if ($a!=2){
for ($z=0;$z<(3-$a);$z++) echo '</td>';
echo '</tr>' ;   
        ?>
Voila c'est bien bourrin mais je pense que sa marche 

 @+	
Il en faut peu pour être heureux !!!!!
		
			
		
	 
	
	
		L'idée était là, merci, j'y suis arrivé en reprenant un peu ton code, il te manquait le $a++ et je comprends pas pourquoi tu as mis le if($a!=2) ?
<?
        // Recuperation de toutes les pages disponibles
        $sql = "SELECT * FROM ".$table_pages."";
        $query = mysql_query($sql) or die("Erreur sur $sql :<br><br>".mysql_error());
         
        while($data = mysql_fetch_array($query)){
        $tab[] = $data;
        }
        $nbcol = 3;
         
        for($i=0;$i<count($tab);$i++){
           
          $id=$tab[$i]['id'];   
          $nom_page=$tab[$i]['nom_page'];   
       
          if($i%$nbcol==0) { echo "<tr>"; $a=0; }
         
          echo "<td class=\"listelt\"><input type=\"checkbox\" name\"check[$i]\" value=\"".$id."\"> ".$nom_page."</td>";   
       	  $a++;
          if($i%$nbcol==($nbcol-1)) { echo "</tr>"; }   
         
        }
for ($z=0;$z<(3-$a);$z++) echo "<td class=\"listelt\"></td>";
echo "</tr>" ;   
        ?>