Trier par ordre alphabétique
skaman851
Messages postés
13
Statut
Membre
-
skaman851 Messages postés 13 Statut Membre -
skaman851 Messages postés 13 Statut Membre -
Bonjour,
Habitué du site mais juste inscrit je réalise une MAJ de mon Intranet mais le seul problème est que je voudrais trier les valeurs récupérer dans le dossier en ordre alphabétique. Mais pas moyen j'y arrive pas.
Voici mon code :
<HTML>
<HEAD><TITLE>Diapason</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="style.css" rel="stylesheet" type="text/css"/>
</HEAD>
<body>
<?php
session_start();
if(isset($userdata['privilegesAbsences']) && $userdata['privilegesAbsences'] <= 3) //Users Autorises
{
?>
<?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 ferme le if (qui permet de ne pas afficher index.php, etc.)
} //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';
?>
<?php
}
else
{
echo "<div class=\"erreur\">Vous devez etre loggue pour acceder à cette zone.</div>";
}
?>
</body>
</html>
Merci de votre aide
Cordialement
Habitué du site mais juste inscrit je réalise une MAJ de mon Intranet mais le seul problème est que je voudrais trier les valeurs récupérer dans le dossier en ordre alphabétique. Mais pas moyen j'y arrive pas.
Voici mon code :
<HTML>
<HEAD><TITLE>Diapason</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="style.css" rel="stylesheet" type="text/css"/>
</HEAD>
<body>
<?php
session_start();
if(isset($userdata['privilegesAbsences']) && $userdata['privilegesAbsences'] <= 3) //Users Autorises
{
?>
<?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 ferme le if (qui permet de ne pas afficher index.php, etc.)
} //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';
?>
<?php
}
else
{
echo "<div class=\"erreur\">Vous devez etre loggue pour acceder à cette zone.</div>";
}
?>
</body>
</html>
Merci de votre aide
Cordialement
A voir également:
- Trier par ordre alphabétique
- Comment trier par ordre alphabétique sur excel - Guide
- Triez ce tableau par ordre alphabétique des prénoms ✓ - Forum Excel
- Triez ce tableau par ordre alphabétique des prénoms. ✓ - Forum Excel
- Dans le document à télécharger, les références des pièces détachées sont affichées par pays, puis par type de pièces. réorganisez le document pour avoir : les pays dans l'ordre alphabétique : allemagne, espagne, france et italie ; et pour chaque pays, les pièces d'auto, de bateau et de moto dans cet ordre. quelle est la référence de la pièce en ligne 500 ? ✓ - Forum Windows
- Vba trier colonne par ordre croissant - Forum VB / VBA
8 réponses
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
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.
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
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 />");
}
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;
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>";
Cordialement