Demande d'une fonction ou une formule standard

Fermé
PJ_6TM Messages postés 7 Date d'inscription vendredi 9 mai 2014 Statut Membre Dernière intervention 16 avril 2015 - Modifié par baladur13 le 9/05/2014 à 14:44
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 - 9 mai 2014 à 16:43
Bonjour, moi c'est Nom supprimé Modération CCM ,
Et j'ai un problème auquel je pense bien que vous pouvez m'aider à résoudre car ici, j'ai toujours eu pas mal de solutions en programmation PHP.

Mon problème est le suivant:
comment mettre en place une fonction ou une formule dynamique et générale qui pourra m'aider à aligner des objets (images, musiques, vidéos ou bref des fichiers...) se trouvant dans un répertoire et sous-répertoire dans l'ordre croissant dans un tableau qui peut prendre automatiquement 'n' colonnes et 'n' lignes tenant compte de nombre d'éléments se trouvant dans le répertoire passé en paramètre de la dite fonction, et les afficher ensuite?
au fait, ce que je voudrai dire est que par exemple ceci:

| 0 | 1 | 2 | 3 | 4 |
-----------------------------
| 5 | 6 | 7 | 8 | 9 |
-----------------------------
| 10 | 11 | 12 | 13 | 14 |
------------------------------
| 15 | 16 | 17 | 18 | 19 |

Je veux que je puisse aligner mes objets de cette manière dans le tableau,
C'est-à-dire que lorsque j'ai défini la taille du tableau en ligne et en colonne, que lorsque la ligne arrive à la fin, que la continuation se fasse à la seconde ligne pour évider de doublon ou soit de duplication d'objets.
J'ai essayé avec une fonction dans laquelle j'ai intégré la génération de deux boucles et ça me marche un tableau de 2 colonnes et 'n' lignes seulement, et lorsque j'essai avec la même formule d'adapter le tableau à 3, 4, 5, ... ou plus des colonnes ça bousille le tout!
Et c'est pour cela que j'ai pensé que vous pourriez avoir une solution pour à ce fait
à ce fait, moi j'ai fait...

<?php
function ScanRep($dirname){
$diropn = opendir($dirname) or die('Openning directory error!');
$file = array();
$folder = array();

$i=0;
while($items=@readdir($diropn)){
$i=$i+1;
if($items!='.' && $items!='..'){
if(!is_dir($dirname.'/'.$items){
$file[]=$itmes;
}else{
$folder[]=$items;
}
}

}
closedir($diropn);
return $i;
return array('fichiers'=>$file,'dossiers'=>$folder);
}
$dirname=(isset($_GET['dir']))?$_GET['dir']:'../My Folder';

$rep= ScanRep($dirname);
$fichier = $rep['fichiers'];
$dossier = $rep['dossiers'];

$nbf =(count($fichier)/2); // Je compte le nombre de fichiers contenus dans le répertoire prédéfini et je le divise par 2.
$nbd = (count($dossier)/2); // Je compte le nombre de dossiers contenus dans le répertoire prédéfini et puis là, je divis e aussi par 2.

if(!empty($fichier)){
$info = pathinfo($dirname);
echo ="<table border='1' cellspacing='2' cellpadding='2' align='center' width="50%">";
echo ="<tr><th>".$info['dirname']."/</th></tr>";
for($i=0;$i<$nf;$i++){
$subrep= ScanRep($dirname.'/'.$fichier[$i]);
// à ce niveau ici, j'ai imbriqué deux boucles successives
// La première me trace les lignes du tableau et la seconde m'en trace les colonnes
echo "<tr>\n";

for($j=0; $j<=2; $j++){
echo "<td>".((($i+$j)+1)+($i-1))."</td>";
}
echo "</tr>";
}
echo "</table>";
?>


Voilà un peu ce que j'ai pu faire et ça a marché très bien à moins juste qu'ici je me sois trompé ou peut-être que j'eusse fait une erreur de syntaxe.
ça marche mais seulement avec un tableau à 2 colonne et 'n' lignes et ici l'ordre du tableau que représenté ci-dessus est respecté.
PidJey ABEDI
A voir également:

1 réponse

mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
9 mai 2014 à 16:43
Bonjour,

Vous avez déja posé la question et j'y ai déja répondu....

A+
0