PHP & MySQL

Manipuler les pays en PHP

Le 10 février 2008 à 12:25 par chris

Si il y a bien quelques chose qui m’a pris du temps lors de mes premiers pas en PHP, c’est la manipulation des pays.

  • Choisir son pays dans le formulaire d’inscription.
  • Modifier son pays sans son profil
  • Afficher son pays dans sa page perso.

Avec le nombre de pays disponibles, c’est vraiment très lourd à gérer

Maintenant, je gagne pas mal de temps avec mon petit tableau contenant les pays et franchement, ce n’est plus galère du tout. Je le propose aux personnes pouvant eux aussi en avoir besoin.

Cliquez sur ce lien pour récupérer le tableau des pays que vous intégrerez dans une page php, par exemple, paysarr.php.

Choisir un pays dans le formulaire d’inscription:

  1.  
  2.  
  3. <?php include "paysarr.php";
  4.  
  5. echo ‘<select name="country" id="country" class="cel" >’;
  6.         foreach ($payslist as $key => $value) {
  7.          echo ‘<option value="’.$key.‘">’.$value.‘</option>’."n";
  8. }
  9.  
  10. echo ‘</select>’; ?>
  11.  
  12.  

récupérer le pays dans le formulaire de modification de profil:

  1.  
  2.  
  3. <?php include "paysarr.php";
  4.  
  5. $mypays = "fr"; // récupéré depuis la DB par exemple.
  6.  
  7. echo ‘<select name="country" id="country" class="cel" >’;
  8.         foreach ($payslist as $key => $value) {
  9.         if ($mypays==$key) echo ‘<option value="’.$key.‘" selected="selected">’.$value.‘</option>’."n";
  10.         else echo ‘<option value="’.$key.‘">’.$value.‘</option>’."n";
  11. }
  12.  
  13. echo ‘</select>’; ?>
  14.  
  15.  

récupérer le nom du pays d’un membrel:

  1.  
  2.  
  3. <?php include "paysarr.php";
  4.  
  5. $mypays = "fr"; // récupéré depuis la DB par exemple.
  6.  
  7. echo $payslist[$mypays];
  8.  
  9.  
  10.  

on ne peut pas faire plus simple

8 commentaires »

Gravatar

Commentaire de chris

le 10 février 2008 à 12:28

Un petit détail, je vais devoir changer de script de mise en forme.

il faut remplacer les .”n”; par .”\n”;

Gravatar

Commentaire de kazhar

le 10 février 2008 à 13:01

Notez également que ce genre de données, placée dans un tableau, prends de la ram sur la machine pour rien.
Mieux vaut placer la liste dans une base de données et récupérer le nom du pays en même temps que les informations du membre (avec une jointure, vous n’aurez à faire qu’une seule requête).

Gravatar

Commentaire de eMeRiKa

le 10 février 2008 à 13:45

Rhaaa, je viens de me retaper la liste hier.. A une journée, dommage!!

En tout cas, un joli cadeau :)

Gravatar

Commentaire de Tom Clarks

le 10 février 2008 à 16:31

@kazhar le peu de place qu’elle prends dans la mémoire ram n’est pas important… Ce n’est qu’une petite liste de pays…
Par contre je préconise l’utilisation de APC pour mettre en Cache dans la ram toutes ces données une fois pour toute, au lieu de les enlever/remettre à chaque chargement de page.
Je ferai un tuto sur APC dès que j’aurai quelques minutes :)

En tous cas merci pour ce tuto pratique Chris ;)

Par contre en lisant ton code, j’ai remarqué un truc, t’utilise du français et de l’anglais pour coder… Faudrait étudier une façon de coder où on utilise qu’un langage, le Français ou l’Anglais (je n’utilise que l’anglais, mais utiliser le Français peut être pas mal, il faudrait en discuter) :p

Gravatar

Commentaire de Tommy

le 10 février 2008 à 18:31

Yep, je pense que tout développeur ayant du manipuler des pays utilise ce genre de truc pour pas avoir à recopier X fois la même chose ;)

Une petite astuce quand tu montres des sources en php, au lieu de convertir ton fichier en *.txt, converti le en *.phps. Ca permettra de voir le code php avec la coloration syntaxique ;)

@Kazhar : Au final, vaut mieux quoi ? Que ça bouffe un peu de ram, ou bien faire un appel SQL ? A mon avis, le premier est meilleur (mais je peux me tromper)

Gravatar

Commentaire de kazhar

le 10 février 2008 à 21:28

@Tommy : dans le cas de la récupération de la ville d’un utilisateur, cela ne fait pas une requête en plus. Simplement une jointure.

Gravatar

Commentaire de Chris

le 10 février 2008 à 22:41

Oui je suis d’accord en DB c’est peut être mieux dans ce genre de cas mais bon, le but de ce billet est d’offrir une solution très rapide et simple.

à propos, ce tableau je l’ai pompé de facebook :D comme quoi il peut vraiment servir ce site…

Gravatar

Commentaire de Kaimite

le 18 avril 2008 à 17:31

J’arrive surement un peu tard mais j’ai la même chose pour les langues si ça interesse qqu’un ?

plhubert {a} kaimite.net

@++

Laisser un commentaire

Votre Nom

Votre E-mail (obligatoire mais ne sera pas publié)

Votre Site ou blog

Votre commentaire

Valid XHTML 1.0 Transitional