Trier par ordre alphabétique
Fermé
skaman851
Messages postés
13
Date d'inscription
jeudi 12 février 2009
Statut
Membre
Dernière intervention
9 octobre 2009
-
12 févr. 2009 à 09:40
skaman851 Messages postés 13 Date d'inscription jeudi 12 février 2009 Statut Membre Dernière intervention 9 octobre 2009 - 23 févr. 2009 à 09:43
skaman851 Messages postés 13 Date d'inscription jeudi 12 février 2009 Statut Membre Dernière intervention 9 octobre 2009 - 23 févr. 2009 à 09:43
A voir également:
- Trier par ordre alphabétique
- Excel trier par ordre alphabétique - Guide
- Classer les applications par ordre alphabétique iphone - Guide
- Triez ce tableau par ordre alphabétique des prénoms. - Forum Excel
- Excel graphique trier par ordre décroissant ✓ - Forum Excel
- Liste amis facebook ordre alphabétique - Forum Facebook
8 réponses
niahoo
Messages postés
247
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
23 mai 2010
19
12 févr. 2009 à 10:05
12 févr. 2009 à 10:05
bon mettons que tu aies le chemin de ton dossier dans $dossier
genre
tu fais ton fileopen etc..
tu déclares un tableau:
a chaque fois que tu passes un fichier dan ton while, tu fais tes vérifications (if != '.' ou je sais plus quoi)
au final ça te donnera un tableau qui correspond à ça:
ensuite grâce à la fonction sort() tu trie ton tableau.
sort($tab);
print_r($tab); //cette ligne est a supprimer, elle te permet de faire afficher ton tableau pour voir ce qu'il contient
fu fais (je te donne en algo, à toi de trouver la syntaxe précise
voilà si tu as compris le principe c'est cool
genre
$dossier="/diapason/Diapason_2008-2009/";
tu fais ton fileopen etc..
tu déclares un tableau:
$tab=array(); $cpt=0; //initialise le compteur
a chaque fois que tu passes un fichier dan ton while, tu fais tes vérifications (if != '.' ou je sais plus quoi)
while(false !== ($fichier = readdir($dossier))) // moi j'écrirais ça while($fichier = readdir($dossier)) { $cpt++; //ton compteur $tab[$cpt] = fonction_qui_récupere_le_nom_du_fichier($fichier); //je le rappelle plsu de cette fontction dsl }
au final ça te donnera un tableau qui correspond à ça:
$tab[1] = "calendrier.doc"; $tab[2] = "liste_des_courses.xls";
ensuite grâce à la fonction sort() tu trie ton tableau.
sort($tab);
print_r($tab); //cette ligne est a supprimer, elle te permet de faire afficher ton tableau pour voir ce qu'il contient
fu fais (je te donne en algo, à toi de trouver la syntaxe précise
foreach($tab as $num => $nom_fichier) // on récupère les valeurs du tableau trié dans la variable $nom_fichier { echo("<a href=\"".$dossier.$nom_fichier."\">".$nom_fichier."</a>"); // j'ai pas mis les <td> <tr> à toi de voir }
voilà si tu as compris le principe c'est cool
skaman851
Messages postés
13
Date d'inscription
jeudi 12 février 2009
Statut
Membre
Dernière intervention
9 octobre 2009
12 févr. 2009 à 11:47
12 févr. 2009 à 11:47
OK donc j'ai essayer mais pas moyen ça ne marche pas!
niahoo
Messages postés
247
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
23 mai 2010
19
12 févr. 2009 à 12:39
12 févr. 2009 à 12:39
alors copie moi le code que tu as fait à partir de ce que je t'ai dit et décris poi aussi précisément ce que tu veux faire, étape par étape.
skaman851
Messages postés
13
Date d'inscription
jeudi 12 février 2009
Statut
Membre
Dernière intervention
9 octobre 2009
13 févr. 2009 à 09:10
13 févr. 2009 à 09:10
Bonjour,
Dsl du retard mais j'ai été pas mal occupé hier donc voici le nouveau code qui ne fonctionne pas suivant tes conseils.
Je suis sur que sa peu marcher avc un peu de modif mais je suis perdu.
Merci d'avance!!!
Dc le nouveau code :
<?php
$nb_fichier = 0;
$tab=array();
echo"<p align=center><b>Choisissez le diapason que vous souhaitez consulter :</b></p>";
echo"<table class=liens>";
$dossier="/diapason/Diapason_2008-2009/";
if($dossier = opendir('./diapason/Diapason_2008-2009/'))
{
while($fichier = readdir($dossier))
{
if($fichier != '.' && $fichier != '..' && $fichier != 'index.php')
{
$nb_fichier++; //On incrémente le compteur de un
$tab[$cpt] = fonction_qui_récupere_le_nom_du_fichier($fichier); //je le rappelle plsu de cette fontction dsl
foreach($tab as $num => $nom_fichier)
echo "
<tr>
<td class=liens><li><a class=\"liens\" href=\"".$dossier.$nom_fichier."\">".$nom_fichier."</a></li></td>
</tr>";
}
} //On termine la boucle
closedir($dossier);
sort($tab);
echo"</table>";
echo'<p>Il y a <strong>' . $nb_fichier .'</strong> fichier(s) dans le dossier</p>';
echo"<br /><br />";
}
else
echo 'Le dossier n\' a pas pu être ouvert';
?>
Et mon ancien code :
<?php
$nb_fichier = 0;
echo"<p align=center><b>Choisissez le diapason que vous souhaitez consulter :</b></p>";
echo"<table class=liens>";
if($dossier = opendir('./diapason/Diapason_2008-2009/'))
{
while(false !== ($fichier = readdir($dossier)))
{
if($fichier != '.' && $fichier != '..' && $fichier != 'index.php')
{
$nb_fichier++; //On incrémente le compteur de un
echo "
<tr>
<td class=liens><li><a class=\"liens\" href='/diapason/Diapason_2008-2009/$fichier'>$fichier</a></li></td>
</tr>";
}
} //On termine la boucle
closedir($dossier);
echo"</table>";
echo'<p>Il y a <strong>' . $nb_fichier .'</strong> fichier(s) dans le dossier</p>';
echo"<br /><br />";
}
else
echo 'Le dossier n\' a pas pu être ouvert';
?>
Cordialement
Dsl du retard mais j'ai été pas mal occupé hier donc voici le nouveau code qui ne fonctionne pas suivant tes conseils.
Je suis sur que sa peu marcher avc un peu de modif mais je suis perdu.
Merci d'avance!!!
Dc le nouveau code :
<?php
$nb_fichier = 0;
$tab=array();
echo"<p align=center><b>Choisissez le diapason que vous souhaitez consulter :</b></p>";
echo"<table class=liens>";
$dossier="/diapason/Diapason_2008-2009/";
if($dossier = opendir('./diapason/Diapason_2008-2009/'))
{
while($fichier = readdir($dossier))
{
if($fichier != '.' && $fichier != '..' && $fichier != 'index.php')
{
$nb_fichier++; //On incrémente le compteur de un
$tab[$cpt] = fonction_qui_récupere_le_nom_du_fichier($fichier); //je le rappelle plsu de cette fontction dsl
foreach($tab as $num => $nom_fichier)
echo "
<tr>
<td class=liens><li><a class=\"liens\" href=\"".$dossier.$nom_fichier."\">".$nom_fichier."</a></li></td>
</tr>";
}
} //On termine la boucle
closedir($dossier);
sort($tab);
echo"</table>";
echo'<p>Il y a <strong>' . $nb_fichier .'</strong> fichier(s) dans le dossier</p>';
echo"<br /><br />";
}
else
echo 'Le dossier n\' a pas pu être ouvert';
?>
Et mon ancien code :
<?php
$nb_fichier = 0;
echo"<p align=center><b>Choisissez le diapason que vous souhaitez consulter :</b></p>";
echo"<table class=liens>";
if($dossier = opendir('./diapason/Diapason_2008-2009/'))
{
while(false !== ($fichier = readdir($dossier)))
{
if($fichier != '.' && $fichier != '..' && $fichier != 'index.php')
{
$nb_fichier++; //On incrémente le compteur de un
echo "
<tr>
<td class=liens><li><a class=\"liens\" href='/diapason/Diapason_2008-2009/$fichier'>$fichier</a></li></td>
</tr>";
}
} //On termine la boucle
closedir($dossier);
echo"</table>";
echo'<p>Il y a <strong>' . $nb_fichier .'</strong> fichier(s) dans le dossier</p>';
echo"<br /><br />";
}
else
echo 'Le dossier n\' a pas pu être ouvert';
?>
Cordialement
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
niahoo
Messages postés
247
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
23 mai 2010
19
13 févr. 2009 à 12:31
13 févr. 2009 à 12:31
hum, tu as copié ça tel quel ?
je doute que cette fonction existe, à toi de la trouver ;)
ensuite tu n'as aps fait les choses dans l'ordre
on crée un compteur ($cpt)
dans ton while, ce compteur sert à numéroter les entrées dans notre tableau $tab
fonction_qui_récupere_le_nom_du_fichier($fichier);
je doute que cette fonction existe, à toi de la trouver ;)
ensuite tu n'as aps fait les choses dans l'ordre
on crée un compteur ($cpt)
dans ton while, ce compteur sert à numéroter les entrées dans notre tableau $tab
$cpt=0; while(false !== ($fichier = readdir($dossier))) { if($fichier != '.' && $fichier != '..' && $fichier != 'index.php') { $tab[$cpt] = fonction_qui_récupere_le_nom_du_fichier($fichier); //je le rappelle plsu de cette fontction dsl $cpt++; // voilà donc la tu dois trouver cette fonction, et la ligne signifie, au premier passage du while: // $tab[0] = "nom_de_ton_premier_fichier"; // puis au second passage $tab[1] = "nom_fichier_2.pp" //etc } // fin if } //fin while tu met ton closedir par la je pense puisque le dossier à été lu, on a récupéré les noms et on ne travaille plus qu'avec les noms (j'y connais aps trop en lecture de fichier/dossier, mais à mon avis il existe des fonctions toutes faites pour avoir les fichiers dans l'ordre non ? //maintenan ton trie le tableau, sort($tab); et maintenant on affiche foreach($tab as $num => $nom) { echo($nom."<br />"); }
niahoo
Messages postés
247
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
23 mai 2010
19
13 févr. 2009 à 12:41
13 févr. 2009 à 12:41
et je disais fonction qui récupere le nom du fichier come ça, car je ne sais pas mais si dans ta variable $fichier, la fonction readdir() ne renvoie que le nom, tu peux directement mettre $tab[$cpt]=$fichier;
skaman851
Messages postés
13
Date d'inscription
jeudi 12 février 2009
Statut
Membre
Dernière intervention
9 octobre 2009
13 févr. 2009 à 13:31
13 févr. 2009 à 13:31
ok merci de ta patience je vais essayer mdr
skaman851
Messages postés
13
Date d'inscription
jeudi 12 février 2009
Statut
Membre
Dernière intervention
9 octobre 2009
23 févr. 2009 à 09:43
23 févr. 2009 à 09:43
Bon voilà après plusieurs essai j'y suis arrivé en prennant des bouts de code un peu partout!
Mais il est vrai qu'en ce creusant le crane un peu plus on y arrive!
Voici la solution :
// ouvre le rep
$dp = opendir("./dossier/");
$i=0;
while ( $file = readdir($dp) )
{
// Si on veu virer des fichiers de la liste
if ($file != '.' && $file != '..')
{
// on passe les donnees dans un tableau
$ListFiles[$i]=$file;
$i++;
}
}
closedir($dp);
// tri par ordre croissant
if(count($ListFiles)!=0)
{
if($list_tri == 'DESC')
{
sort($ListFiles);
}
// tri par ordre décroissant
else
{
rsort($ListFiles);
}
}
// affiche les fichiers par ordre alphabetique decroissant
$i=0;
while ( $i < count($ListFiles))
{
echo "
<tr>
<td class=liens><li><a class=\"liens\" href='/dossier/$ListFiles[$i]'>$ListFiles[$i]</a></li></td>
</tr>";
$i++;
}
echo"</table>";
Mais il est vrai qu'en ce creusant le crane un peu plus on y arrive!
Voici la solution :
// ouvre le rep
$dp = opendir("./dossier/");
$i=0;
while ( $file = readdir($dp) )
{
// Si on veu virer des fichiers de la liste
if ($file != '.' && $file != '..')
{
// on passe les donnees dans un tableau
$ListFiles[$i]=$file;
$i++;
}
}
closedir($dp);
// tri par ordre croissant
if(count($ListFiles)!=0)
{
if($list_tri == 'DESC')
{
sort($ListFiles);
}
// tri par ordre décroissant
else
{
rsort($ListFiles);
}
}
// affiche les fichiers par ordre alphabetique decroissant
$i=0;
while ( $i < count($ListFiles))
{
echo "
<tr>
<td class=liens><li><a class=\"liens\" href='/dossier/$ListFiles[$i]'>$ListFiles[$i]</a></li></td>
</tr>";
$i++;
}
echo"</table>";
12 févr. 2009 à 11:34
Cordialement