Liste déroulante php

niou -  
Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
J'ai crée une liste déroulant qui va me chercher un code postal . exemple:47630
Je voudrais simplement afficher( dans ma liste déroulante) les 2 premiers nombres: donc dans mon exemple 47
Comment faire svp ?

	// Liste déroulante pour trier en fonction des départements :
	$reponse = mysql_query("SELECT DISTINCT cp FROM matable order by cp");
	
	?>


	<font color="#0a14eb"><b>Choix du département:</b></font>

	<select name="path">
	
		<?php
		
		while ($donnees = mysql_fetch_array($reponse))
		{
			?>
			<option value="<?php echo $donnees['cp'];?>">

			<?php echo $donnees['cp'];?>
			</option>
			<?php
		}
		?>
	</select>

<input type="submit" value="Trier" />
</form> 


Merci
A voir également:

8 réponses

Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
 
salut,

et en le faisant faire au serveur de données ?
$reponse = mysql_query("SELECT DISTINCT SUBSTRING(cp,0,2) FROM matable order by cp");

ensuite tu peux remplir ton <select> directement, enfin si la requête fonctionne !
-:oD
0
niou
 
Bon j'ai testé mais malheureusement ma liste devient vide ...
Merci quand même
0
Eldar57 Messages postés 46 Statut Membre 7
 
es tu sur que tes requetes fonctionnent ? testes les directement sur ta base.
Ensuite j'utiliserais une petite variable intermédiaire qui récupère que les 2 premièrs chiffres. ainsi tu affiches que le contenu de cette variable.

Personnellement, j'aurai entrer dans une colonne de la base le numéro du département, et l'aurais récupérer dans ma requête.
0
niou
 
Tu est certain de SUBSTRING ??
0
Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
 
moi oui puisque je suis allé la chercher.

quand tu as des doutes regarde dans le manuel, y a pas plus sûr !
0
niou
 
Ok merci c'est bon ... j'ai juste du faire une petite modif:
$reponse = mysql_query("SELECT DISTINCT SUBSTRING(cp,1,2) as cp FROM matable order by cp");

Juste une dernière question:

Quand je clique sur mon bouton, j'affiche des renseignements en fonction du département.
Avant comme je faisais un recherche par rapport a un département entier, c'étais ok.
Maintenant il faut que je cherche tous les département qui commence par les 2 premiers nombres.

 // On récupére le numéro de département:
$dpt=$_POST['path']; 

$res = mysql_query("SELECT * FROM jos_cmVScp where cp='$dpt'");
while ($row = mysql_fetch_array($res))
{
   <td><? echo $row['cp']; ?></td>
}

Que faut-il changer dans cette requête : $res = mysql_query("SELECT * FROM jos_cmVScp where cp='$dpt'");

Il faut placer un like% ou quelque chose dans ce genre?
Merci pour ton aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
 
oui ça doit faire quelque chose comme :
SELECT * FROM jos_cmVScp where cp LIKE %$dpt

le plus simple est de tester en direct sur ta BDD, tu auras les messages d'erreur.
0
niou
 
Bon j'ai trouvé. Je met la réponse au cas où sa peux servir a quelqu'un:
$res = mysql_query("SELECT * FROM jos_cmVScp where  cp LIKE '$dpt%'");


Merci "Dalida"
0
Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
 
lol on s'est croisé.

heureusement pour toi tu te débrouilles tout seul en SQL, parce que j'étais encore aux choux !
-:oD
0
Flohti Messages postés 165 Statut Membre 15
 
Salut,

si $_POST['path'] est ce que tu récupères de l'autre script, c'est que tu n'as que le début, dans ce cas tu peux mettre : SELECT * FROM jos_cmVScp WHERE cp LIKE('$dpt%')

EDIT : ^^
0
niou
 
Merci pour le temps que vous m'avez consacrés
0
Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
 
pense à cocher "résolu" si c'est le cas et bonne route à toi !
-;o)
0