Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2628 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Comment trier les resulats TRADUITS de mon tableau?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment trier les resulats TRADUITS de mon tableau?

n°1794727
ralpflo
Posté le 02-10-2008 à 10:52:53  profilanswer
 

Bonjour,
Le script que j'utilise permet d'afficher une liste de noms de pays qu'il va chercher dans la base SQL dans la table 'countries' et colonne 'country'. Les pays sont listés dans la table en anglais.
Selon la langue choisie par l'internaute le nom des pays est traduit dans cette langue.  
Mon probleme est qu'il fait le tri alphabetique grace a Order By'country' ASC donc qu'il fait le tri par rapport aux noms en anglais quel que soit la langue choisie ce qui fait que l'ordre alphabetique n'est pas respecté en français par exemple.
Y'a t'il une solution pour qu'il fasse le tri alphabetique en fonction des resultats affichés??
 
Je vous mets 2 extraits de codes :  
Le premier sert donc a aller chercher les informations dans la base :
 
function getZipCodeCountry() {
    $aCountryList = array();
    $aCountries = ( $sCoutry = db_value( 'SELECT value FROM `search_settings` WHERE name = "countries"' ) ) ? explode( ';', $sCoutry ) : array( 0 );
    $rCountryList = db_res( 'SELECT `ISO2`, `Country` FROM `Countries` WHERE `ISO2` IN ("'. implode( '","', $aCountries ) .'" ) ORDER BY `Country` ASC' );
    while( $aCountry = mysql_fetch_array( $rCountryList ) )
        $aCountryList[$aCountry['ISO2']] = $aCountry['Country'];
    return $aCountryList;    
}

 
Le 2ème sert a affciher le resultat sur ma page :
<select name="country" id="country">
<?
echo '<option value="">'. _t('All') .'</option>';
foreach( $aCountryList as $ISO => $Country )
echo '<option value="'. $ISO .'" >'._t("__". $Country ) .'</option>';
?>
</select>

 
La traduction se fait grâce a : .t("__".
 
Quelqu'un peux t'il me sauver????
Merci d'avance
 
Denis


---------------
ralpflo
mood
Publicité
Posté le 02-10-2008 à 10:52:53  profilanswer
 

n°1794731
flo850
moi je
Posté le 02-10-2008 à 11:00:52  profilanswer
 

la traduction est faite en php , donc il faut faire le tri coté php  
 
tu construit un tableau $iSO => nomPaysTraduit , et tu trie ca avec asort


---------------

n°1794732
ralpflo
Posté le 02-10-2008 à 11:02:43  profilanswer
 

Merci Flo pour ta reponse... mais je suis autodidacte en php et je ne sais pas comment onfait un tableu $ISO

n°1794908
PunkRod
Digital Mohawk
Posté le 02-10-2008 à 17:43:42  profilanswer
 

ralpflo a écrit :

Merci Flo pour ta reponse... mais je suis autodidacte débutant en php et je ne sais pas comment onfait un tableu $ISO

 

tu as déjà ton tableau, il s'appelle $aCountryList, tu le construis dans ton premier morceau de code.
y a plus qu'à appliquer la fonction de tri en php avant l'affichage.


Message édité par PunkRod le 02-10-2008 à 17:44:03
n°1794916
ralpflo
Posté le 02-10-2008 à 17:56:55  profilanswer
 

D'accord mais j'ai essayé de metter des osrt ou des asort un peu partout et fca ne marche pas. Ca serait trop te demander que de me dire où je dois mettre le asort et en gros ce que je dois ecrire???
Merci beaucoup Flo :-)

n°1794941
Profil sup​primé
Posté le 02-10-2008 à 18:55:33  answer
 

ralpflo a écrit :


La traduction se fait grâce a : .t("__".


 
Comment tu fais pour faire ta traduction ca m'intéresse ?

n°1794989
PunkRod
Digital Mohawk
Posté le 02-10-2008 à 21:07:09  profilanswer
 

ralpflo a écrit :

D'accord mais j'ai essayé de metter des osrt ou des asort un peu partout et fca ne marche pas. Ca serait trop te demander que de me dire où je dois mettre le asort et en gros ce que je dois ecrire???
Merci beaucoup Flo :-)


normalement y a tout dans la doc, surtout pour filtrer un tableau associatif à une dimension...
 
...et tu as déjà la réponse : pour trier les valeurs en conservant les clés, c'est asort() qu'il faut utiliser.

n°1795352
ralpflo
Posté le 03-10-2008 à 16:21:47  profilanswer
 

J'ai mis ca comme code :
<? echo '<option value="">'. _t('All') .'</option>';
asort($aCountryList);
foreach( $aCountryList as $ISO => $Country )
echo '<option value="'. $ISO .'" >'._t("__". $Country ) .'</option>'; ?>
 
mais ca continue a trier en fonction de l'ordre alphabetique dans ma base et non pas par ordre alphabetique des pays traduits.
 
Tbox je suis désolé mais je ne sais pas comment fonctionne la traduction c'est un script que j'ai recupéré en l'etat et que j'essaie d'améliorer.

n°1795608
Alisteroid
Posté le 04-10-2008 à 12:30:46  profilanswer
 


i18n

n°1795613
flo850
moi je
Posté le 04-10-2008 à 12:37:02  profilanswer
 

remplace

Code :
  1. while( $aCountry = mysql_fetch_array( $rCountryList ) )
  2.        $aCountryList[$aCountry['ISO2']] = $aCountry['Country'];


par  

Code :
  1. while( $aCountry = mysql_fetch_array( $rCountryList ) )
  2.        $aCountryList[$aCountry['ISO2']] =_t("__". $aCountry['Country']);
  3. asort($aCountryList);



---------------

mood
Publicité
Posté le 04-10-2008 à 12:37:02  profilanswer
 

n°1795742
ralpflo
Posté le 05-10-2008 à 12:46:33  profilanswer
 

MERCI INFINIMENT FLO!!!
Ca marche nickel
You're the Best


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Comment trier les resulats TRADUITS de mon tableau?

 

Sujets relatifs
Faire apparaître un tableau progressivementTableau PHP en tableau javascript : Probleme
espace suspect en bas de tableauListe en HTML alignée facon "sommaire" SANS tableau
PHP: Une commande pour parcourir un tableau...[JS]Parcours de tableau
commande ALT d'une image sur une case d'un tableautrier un array ?? troll en cours ...
[CSS] hauteur d'un tableau sous IEhauteur d'un tableau et insertion d'iframe
Plus de sujets relatifs à : Comment trier les resulats TRADUITS de mon tableau?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)