Liste déroulante php

niou -  
Dalida Messages postés 7114 Statut Contributeur -
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 Statut Contributeur 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 Statut Contributeur 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 Statut Contributeur 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 Statut Contributeur 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 Statut Contributeur 923
 
pense à cocher "résolu" si c'est le cas et bonne route à toi !
-;o)
0