Affichage dans un tableau

Bonjour,

Ben me revoilà!

j'affiche par un code qui fonctionne, les répertoirs en liste, reprenant le nombre de fichiers se trouvant dedans. MAis j'aimerais l'afficher dans un tableau de 2 voir 3 colonnes! et là je cale...


<?
$tableau = array();
$repertoir = opendir('./pictures/');

while ($filename = readdir($repertoir))
{
	if(is_dir($rep.$filename) && $filename !='.' && $filename != '..')
	{
	$tableau[] = $filename;
	}
}


$nbcol = 4;
$nbreps = count($tableau);
if ($nbreps != 0)
{
	echo '<table>';
	for ($i=0,$i<nbreps,$i++)
	{
		if ($i%nbcol==0) echo "<tr><td>";
		
		$fichiers = glob($filename."/*.*");
		$compteur = count($fichiers);
		echo "Nom du fichier : <a href='$rep$filename'>"$tableau[$i]"</a>";
			if ($compteur > 0) 
			{ 
			 echo "<br>Il y a <font color=#FF0000>".$compteur."</font> fichiers dans ce répertoire</td>"; 
			} else {
					echo "<br>Il n'y a pas de fichier dans ce répertoire</td>"; 
				   }
		
		if ($i%nbcol==($nbcol-1))
		{
		 echo "</tr>";
		} 
	}
	echo "</table>";
} else 
	{
	 echo "aucun dossier photo";
	} 
closedir ($repertoir);
?>



J'ai une page blanche, mais je ne trouve pas mon erreur...
--
En pleine construction de 's baraque!
Configuration: Windows XP
Firefox 3.0.1

7 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Salut,

    if(is_dir($rep.$filename)

    Il y a quoi dans $rep ?
    1. Bien vu! Mais c'est toujours pas ce qui m'aide, la page reste blanche...

      voici la correction:

      <?
      $tableau = array();
      $repertoir = opendir('./pictures/');
      
      while ($filename = readdir($repertoir))
      {
      	if(is_dir($filename) && $filename !='.' && $filename != '..')
      	{
      	$tableau[] = $filename;
      	}
      }
      
      
      $nbcol = 4;
      $nbreps = count($tableau);
      if ($nbreps != 0)
      {
      	echo '<table>';
      	for ($i=0,$i<nbreps,$i++)
      	{
      		if ($i%nbcol==0) echo "<tr><td>";
      		
      		$fichiers = glob($filename."/*.*");
      		$compteur = count($fichiers);
      		echo "Nom du fichier : <a href='$rep$filename'>"$tableau[$i]"</a>";
      			if ($compteur > 0) 
      			{ 
      			 echo "<br>Il y a <font color=#FF0000>".$compteur."</font> fichiers dans ce répertoire</td>"; 
      			} else {
      					echo "<br>Il n'y a pas de fichier dans ce répertoire</td>"; 
      				   }
      		
      		if ($i%nbcol==($nbcol-1))
      		{
      		 echo "</tr>";
      		} 
      	}
      	echo "</table>";
      } else 
      	{
      	 echo "aucun dossier photo";
      	} 
      closedir ($repertoir);
      ?>
      
      1. Modérateur
        Tu ferme des <td> mais tu ne les commence jamais.
        Il ya quoi quand tu affiches la source html ?
    2. merci pour ta réponse, mais pour l'instant il m'affiche le même dossier 4 fois l'un en dessous de l'autre...

      1. Modérateur
        Mais tu réutilises $filename alors que $filename contient le dernier appel à readdir, c'est à dire rien :-)
        1. Je ne te suis pas vraiment, mais j'ai modifié ce que vous m'aviez attiré l'attention:

          
          	<?
          	$rep = "./pictures/";
          	$dir = opendir($rep);
          	$i = 0;
          	$nom = array();
          	while ($filename = readdir($dir))
          	{
          
          	if(is_dir($rep.$filename) && $filename !='.' && $filename != '..')
          	{
          		$nom[] = $filename;
          		}
          		}
          		closedir ($filename);
          		
          		$fichiers = glob($filename."/*.*");
          		$compteur = count($fichiers);
          		$nbcol = 5;
          		$nbreps = count($nom);
          			if ($nbreps != 0){
          				echo "<table>";
          				for ($j=1;$j<=$nbcol;$j++){
          					if ($j%$nbcol==0)
          					echo "<tr><td>Nom du fichier : <a href='$rep$filename'>".$nom[$i]."</a>";
          						if ($compteur > 0) { 
          							echo "<br>Il y a <font color=#FF0000>$compteur</font> fichiers dans ce répertoire"; 
          							echo "</td>";
          						} else { 
          						echo "<br>Il n'y a pas de fichier dans ce répertoire"; 
          						}
          					if ($j%$nbcol==($nbcol-1)) echo "</tr>";			
          	}
          	echo "</table>";
          	}
          	 else echo "Aucune image";
          	?>
          
          


          Cela affiche ceci:

          Il y a 20 dossiers photos!

          Il y a 1 fichiers dans ce répertoire
          Il y a 1 fichiers dans ce répertoire
          Il y a 1 fichiers dans ce répertoire
          Il y a 1 fichiers dans ce répertoire
          Il y a 1 fichiers dans ce répertoire
          Il y a 1 fichiers dans ce répertoire
          Il y a 1 fichiers dans ce répertoire
          Il y a 1 fichiers dans ce répertoire
          Il y a 1 fichiers dans ce répertoire
          Il y a 1 fichiers dans ce répertoire
          Il y a 1 fichiers dans ce répertoire
          Il y a 1 fichiers dans ce répertoire
          Il y a 1 fichiers dans ce répertoire
          Il y a 1 fichiers dans ce répertoire
          Il y a 1 fichiers dans ce répertoire
          Il y a 1 fichiers dans ce répertoire
          Nom du fichier : nouvelan
          Il y a 1 fichiers dans ce répertoire
          Nom du fichier : nouvelan
          Il y a 1 fichiers dans ce répertoire
          Nom du fichier : nouvelan
          Il y a 1 fichiers dans ce répertoire
          Nom du fichier : nouvelan
          Il y a 1 fichiers dans ce répertoire

          J'ai l'affichage de mes dossiers photos l'un en dessous des autres... Pourquoi n'ai je pas l'affichage en colonnes?

          je suis déjà content d'en arriver là :-)
          1. voici le code simplifié, donc si quelqu'un peut m'aider pour deux choses, je serai sauvé...Car j'ai trop peu de connaissances!

            1) affichage dans un tableau genre 4 colonnes
            2) par ordre alphabétique

            
            <?
            
            $rep = "./pictures/";
            $dir = opendir($rep);
            $i = 0;
            
            while ($filename = readdir($dir))
            {
            
            if(is_dir($rep.$filename) && $filename !='.' && $filename != '..')
            {
            $nom[] = $filename;
            $fichiers = glob($rep.$filename."/*.*");
            $compteur = count($fichiers);
            
            echo "<li>Nom du dossier : <a href='".$rep.$filename."'>".$nom[$i]."</a>";
            
            if ($compteur > 0) { 
            	echo "<br>Il y a <font color=#FF0000>".$compteur."</font> fichiers dans ce répertoire"; 
            	} else { 
            	echo "<br>Il n'y a pas de fichier dans ce répertoire"; 
            	}
            echo "<br><br>";
            $i++;
            }
            }
            
            ?>


            merci d'avance...
            1. Modérateur
              Et comme ça?

              <?
              
              $rep = "./pictures/";
              $dir = opendir($rep);
              $i = 0;
              
              echo '<ul>';
              while ($filename = readdir($dir))
              {
              
              if(is_dir($rep.$filename) && $filename !='.' && $filename != '..')
              {
              $nom[] = $filename;
              $fichiers = glob($rep.$filename."/*.*");
              $compteur = count($fichiers);
              
              echo "<li>Nom du dossier : <a href='".$rep.$filename."'>".$nom[$i]."</a>";
              
              if ($compteur > 0) { 
              	echo "<br>Il y a <font color=#FF0000>".$compteur."</font> fichiers dans ce répertoire"; 
              	} else { 
              	echo "Il n'y a pas de fichier dans ce répertoire"; 
              	}
              echo "</li>";
              $i++;
              }
              }
              echo '</ul>';
              
              ?>

              Tu ne fermais pas tes entrées de liste et tu ne l'initialisais pas avec la balise <ul>.