tri par ordre alphabétique

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : tri par ordre alphabétique

par mario » 17 mars 2006, 22:40

je pense qu'il veut malgré tout garder chaque ligne intact, mais les trier par ordre alphabetique
ok effectivement, je n'avais pas pensé à cet aspect :D

par Spols » 17 mars 2006, 21:54

je pense qu'il veut malgré tout garder chaque ligne intact, mais les trier par ordre alphabetique

par mario » 17 mars 2006, 21:39

J'ai oublié le tri :lol:
Voici le script corrigé:
<?php 
$requete = "SELECT clan FROM ETS_liste_clans"; 
$resultat = mysql_query($requete) or die(mysql_error());


$tableau = array(); // Créé un tableau pour stocker les clan
while ($ligne = mysql_fetch_assoc($resultat)){
   /// REMPLISSAGE DU TABLEAU
   $tableau[] = array( trim($ligne['clan'], " {}[]()") ); // supprime les caractères { } [ ] ( ) et ESPACE en début et fin de chaîne uniquement !!!

} 

/* Le tableau se présentera de cette façon
Array
(
    [0] => exemple1
    [1] => exemple2
    [2] => exemple3
)

*/

sort($tableau); // tri le tableau par ordre alphabétique

// Si tu souhaites parcourir le tableau pour un affichage:


foreach ($tableau AS $valeurs){
   echo $valeurs.'<br/>';

}
?>

Spols, je ne vois pas en quoi mon code est moins approprié que le tien, mon index numérique est bien :D

par Spols » 17 mars 2006, 21:24

Excuse moi mario mais je pense que d'aprés les données expliqué ci-dessus, ce code est plus approprié
<?php 
$requete = "SELECT clan FROM ETS_liste_clans"; 
$resultat = mysql_query($requete) or die(mysql_error()); 


$tableau = array(); // Créé un tableau pour stocker les clan 
while ($ligne = mysql_fetch_assoc($resultat)){ 
   /// REMPLISSAGE DU TABLEAU 
   $tableau[trim($ligne['clan'], " {}[]()") ] = $ligne['clan']

} 

/* Le tableau se présentera de cette façon 
Array 
( 
    [exemple1] => {exemple[1]} 
    [exemple2] => {exemple[2]} 
    [A.T.E] => {A.T.E} //dans ton cas particulier
) 

*/ 
ksort (tableau); 

// Si tu souhaites parcourir le tableau pour un affichage: 

foreach ($tableau AS $valeurs){ 
   echo $valeurs.'<br/>'; 

}
?>

par mario » 17 mars 2006, 21:07

<?php 
$requete = "SELECT clan FROM ETS_liste_clans"; 
$resultat = mysql_query($requete) or die(mysql_error());


$tableau = array(); // Créé un tableau pour stocker les clan
while ($ligne = mysql_fetch_assoc($resultat)){
   /// REMPLISSAGE DU TABLEAU
   $tableau[] = array( trim($ligne['clan'], " {}[]()") ); // supprime les caractères { } [ ] ( ) et ESPACE en début et fin de chaîne uniquement !!!

} 

/* Le tableau se présentera de cette façon
Array
(
    [0] => exemple1
    [1] => exemple2
    [2] => exemple3
)

*/

// Si tu souhaites parcourir le tableau pour un affichage:

foreach ($tableau AS $valeurs){
   echo $valeurs.'<br/>';

}
?>
Nous sommes à ton écoute si tu n'as pas compris quelque chose ou si tu as d'autres questions :wink:

par mimitnt » 17 mars 2006, 15:20

Je suis débutante et je n'arrive vraiment pas. J'ai essayé de chipoté à tout mais je bloque

Voici ma requete

Code : Tout sélectionner

<?php require('../includes/_connexion.php') $requete = "SELECT clan FROM ETS_liste_clans"; $resultat = mysql_query($requete); ?>
Je voudrais supprimer les caractères ()[]{} autres que des lettres de tous les noms commençant par ces caractères
Ex: {A.T.E} devienne A.T.E

par mario » 15 mars 2006, 20:01

effectivement j'ai epluché la doc. Il semble impossible d'utiliser les REGEXP avec un TRIM ou un REPLACE, ce qui aurait permis de faire un ORDER BY sur une chaîne remise en forme.
apparament, ça ne renvoi que 0 ou 1 :cry:

La bonne solution est donc celle du tri après stockage dans un array()
strtok ou preg_replace seront utiles alors.

par Spols » 15 mars 2006, 19:40

place les dans un tableau avec une requete et ne met que les lettres dans les clé

ensuite, tu trie avec ksort($tableau);

par mimitnt » 15 mars 2006, 19:21

Ils sont stockés dans une table

par mario » 15 mars 2006, 19:20

Les noms sont stockés dans une table ou dans un array() ?

tri par ordre alphabétique

par mimitnt » 15 mars 2006, 19:08

Bonjour

j'ai une liste de noms que je voudrais trier par ordre alphabétique.

Mais certains noms ne commencent pas par une lettre mais par un symbole tel que [,{,( ...
Ex: {A.T.C}

Comment faire en sorte que le tri ignore ces symboles et tienne compte que de la 1ère lettre?

Merci de votre aide