Comment trier les resulats TRADUITS de mon tableau? - PHP - Programmation
Marsh Posté le 02-10-2008 à 11:00:52
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
Marsh Posté le 02-10-2008 à 11:02:43
Merci Flo pour ta reponse... mais je suis autodidacte en php et je ne sais pas comment onfait un tableu $ISO
Marsh Posté le 02-10-2008 à 17:43:42
ralpflo a écrit : Merci Flo pour ta reponse... mais je suis |
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.
Marsh Posté le 02-10-2008 à 17:56:55
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 :-)
Marsh Posté le 02-10-2008 à 18:55:33
ralpflo a écrit : |
Comment tu fais pour faire ta traduction ca m'intéresse ?
Marsh Posté le 02-10-2008 à 21:07:09
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??? |
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.
Marsh Posté le 03-10-2008 à 16:21:47
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.
Marsh Posté le 04-10-2008 à 12:37:02
remplace
Code :
|
par
Code :
|
Marsh Posté le 02-10-2008 à 10:52:53
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