Liste déroulante avec tous les pays

Soyez le premier à donner votre avis sur cette source.

Vue 82 542 fois - Téléchargée 6 149 fois

Description

J'ai fait ce script parce que ben à priori je ne l'ai pas trouvé ici. C'est pas grand chose mais ca peut servir.

Liste tous les pays du monde dans une combo
  • D'une part : via un fichier texte chargé dans une table Mysql
  • D'autre part : via un fichier texte qui contient la liste des pays

Source / Exemple :


<?php
	
	 // connexion à la base
	$db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
	
	// sélection de la base  
    mysql_select_db('test',$db)  or die('Erreur de selection '.mysql_error());
    
    // requête sql
    $sql = "CREATE TABLE pays (iso varchar(2) NOT NULL,nom varchar(50) NOT NULL,UNIQUE KEY iso (iso)) ENGINE=InnoDB DEFAULT CHARSET=latin1;";
    
    // on crée la table
    //mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

    echo '<br>Table \'pays\' créée.';
	
	//CHARGEMENTDU FICHIER LISTE PAYS DANS LA TABLE PAYS
	//////////////////////////////////////////////////////////////////

    // requête sql
    $sql = "LOAD DATA INFILE 'c:/liste_pays.txt' INTO TABLE pays;";
    
    // on charge le fichier dans la table
    //mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

    echo 'Votre fichier a été chargé.';

?> 

<form action="" method="post" name="form">
<p><b>Liste Déroulante à partir d'une table mysql</b>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>Choisissez un Pays</td>
    <td><select name="pays" id="pays">
					<?php
						// requête sql
						$sql = "SELECT * FROM pays;";
						
						// on sélectionne toutes les entrées de la table
						$req=mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
						
						//On affiche ces entrées
						while($data = mysql_fetch_assoc($req))
						{
							if ($data['nom']=='France') // France est sélectionné par défaut
							print '<option value='.$data['iso'].' selected="selected">'.$data['nom'].'</option>';
							else
							print '<option value='.$data['iso'].'>'.$data['nom'].'</option>';
						}
					
					    mysql_close();  // on ferme la connexion

					?>
				</select>
	</td>
  </tr>
</table>
</p>

<p><b>Liste Déroulante à partir d'un fichier texte</b>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>Choisissez un Pays</td>
    <td><select name="pays" id="pays">
					<?php
						$id_fichier= fopen("c:/liste_pays.txt","r");
						while($ligne=fgets($id_fichier,1024))
						{
							$ligne=explode(chr(9),$ligne); //chr(9) est le code ascii de tab
							if ($ligne[1]=='France') // France est sélectionné par défaut
							print '<option value='.$ligne[0].' selected="selected">'.$ligne[1].'</option>';
							else
							print '<option value='.$ligne[0].'>'.$ligne[1].'</option>';
						}
					?>
				</select>
	</td>
  </tr>
</table>
</p>
</form>

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

econs
Messages postés
4066
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
18 -
Salut,

Tu devrais rajouter une clause "IF NOT EXIST" à ta requête de création de table, parce qu'à la deuxième execution de ton code, la table existera et la requête ne passera pas.
Arafat Le Sorcier
Messages postés
1
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
1 avril 2006
-
Salut,
C'est vrai t'as pas tord. Ce script n'est pas à exécuter x fois. Enfin en ce qui concerne la partie création de table, qu'on peut mettre en commentaire lorsque la table est créée lors de la première exécution. Mais ta remarque est bonne puisque je me suis posé la même question.
coucou747
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
26 -
salut print=> echo...

et " => '... en tout cas, mélange pas les deux...
tchatelet
Messages postés
1
Date d'inscription
jeudi 11 mai 2006
Statut
Membre
Dernière intervention
11 mai 2006
-
Le code est peut-être bon, mais le site n'est vraiment pas "user friendly"
cadjou69
Messages postés
9
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
12 mars 2007
-
Ce petit prog m'a aide mais pour tes prochaines sources n'oublie pas que les futurs lecteurs ne save pas comment tu programme alors soit le plus explicite possible et le plus propre possible.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.