Trier données PHP

cs_cd59 Messages postés 72 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 31 octobre 2011 - 2 févr. 2008 à 17:39
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 3 févr. 2008 à 11:26
Bonjour, j'ai recherché sur le forum et sur le Net comment trier des données PHP (qui sont ensuite envoyées à Flash), et j'ai pas trouvé mon bonheur (il y avait à chaque fois une base de donnée derrière).

Voici mon code :

<?
$count =0;
$dir=opendir("ecouter" )or die("erreur ouverture du dossier" );
 
while ($file = readdir($dir))
{
 if($file != '..' && $file !='.' && $file !='')
               { 
  if(!is_dir($file))
  {
  $count ++;
  $nomTitre = basename ($file,".mp3");
  $titre[$count] = $nomTitre; 
  echo utf8_encode("&name_file".$count."=".$titre[$count]);
                                 }
                 }
 }
echo "&count_file=".$count;
closedir($dir);
?>

J'ai essayé avec natcasesort mais je sais pas ou le mettre (ni comment l'uliser en fait !)
Merci pour votre aide.

5 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
2 févr. 2008 à 18:25
Hello,

<?
$count = 0;
$dir=opendir("ecouter" )or die("erreur ouverture du dossier" );
 
while ($file = readdir($dir))
{
 if($file != '..' && $file !='.' && $file !='')
               { 
  if(!is_dir($file))
  {
  $count ++;
  $nomTitre = basename ($file,".mp3");
  $titre[$count] = $nomTitre; 
  echo utf8_encode("&name_file".$count."=".$titre[$count]);
                                 }
                 }
 }
natcasesort($ titre );
print_r($titre);
echo "&count_file =".$count;
closedir($dir);
?>
0
cs_cd59 Messages postés 72 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 31 octobre 2011
2 févr. 2008 à 19:01
Merci pour ton aide. Voici ce que cela donnait avant :

&name_file1=haiduci&name_file2=access&name_file3=xylophone&name_file4=clown&name_file5=cartoon&count_file=5


Et avec ton code :

&name_file1=haiduci&name_file2=access&name_file3=xylophone&name_file4=clown&name_file5=cartoonArray ( [2] => access [5] => cartoon [4] => clown [1] => haiduci [3] => xylophone ) &count_file=5


Le problème est le suivant : comment je peux récupérer ces données avec Flash ?
Il faudrait remplacer les [1] [2] et les => => par mes variables &name_file1= &name_file2= etc...


Merci de ton aide précieuse !
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
2 févr. 2008 à 19:29
Non c'est impossible que ce soit cet ordre. Le truc c'est que tu envoies tes données dans le while(), c'est ça ?
Passes plutôt par glob(), puis trie, puis affiches tes données pour Flash.
0
cs_cd59 Messages postés 72 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 31 octobre 2011
2 févr. 2008 à 19:54
Merci pour ton aide, avec glob j'ai des erreurs. Par contre j'ai trouvé une source que j'ai modifié et ça marche maintenant. Ca donne ça :

<?
// ouvre le rep
$count =0;
$dossier = opendir("ecouter");
$i=0;
while ( $file = readdir($dossier) )
{
// enleve les fichiers . et ..
if ($file != '.' && $file != '..')
{
// on passe les datas dans un tableau
$ListFiles[$i]=$file;
$i++;
}
}
closedir($dossier);
// tri par ordre decroissant
if(count($ListFiles)!=0)
{
if($list_tri == 'DESC')
{
rsort($ListFiles);
}
else
{
sort($ListFiles);
}
}
// affiche les fichiers par ordre alphabetique decroissant
$i=0;
while ( $i < count($ListFiles))
{
//echo $ListFiles[$i];
$ii = $i+1;
$nomTitre = basename ($ListFiles[$i],".mp3");
$titre[$i] = $nomTitre;
echo utf8_encode("&name_file".$ii."=".$titre[$i]);
$i++;
}
echo "&count_file=".count($ListFiles);
?>

Maintenant il faut que je rajoute un filtre pour qu'il ne m'affiche pas les dossiers. Parce que là il m'affiche tous les fichiers ET les sous-dossiers se trouvant dans mon dossier "ecouter".
Si tu as une idée je suis preneur.
Merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
3 févr. 2008 à 11:26
salut
  if($list_tri == 'DESC')

c'est defini ou ca ?

pour filtrer fichiers et dossiers utilise is_dir ou is_file (je ne suis pas sur qu'il y ai des _)

malalam, son echo restait dans la boucle donc si ca restait dans cet ordre.

/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
0
Rejoignez-nous