Liste déroulante php
niou
-
Dalida Messages postés 7114 Date d'inscription Statut Contributeur Dernière intervention -
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 ?
Merci
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
8 réponses
-
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
-
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. -
-
moi oui puisque je suis allé la chercher.
quand tu as des doutes regarde dans le manuel, y a pas plus sûr !
-
-
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 -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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.
-
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" -
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 : ^^ -