Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/07/2006, 22h42   #1
Candidat au titre de Membre du Club
 
Inscription : décembre 2004
Messages : 137
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 137
Points : 12
Points : 12
Par défaut Liste de choix MySQL

hello,
je débute dans le code php... j'ai cherché mais je ne trouve pas de réponse à ma question... pourtant assez simple je crois.
En fait, j'ai une table mysql avec une série d'info par commune et j'aimerai afficher sur mon site les différentes fiches.
L'utilisateur n'aurait qu'a choisir la commune dans une liste de choix et toutes les données de la commune seraient affichées...
J'ai déjà réussi à faire une liste de choix
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
  <?php
                         // requête sql
                         $sql = "SELECT * FROM Membre;";
 
                         // 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))
                         {                        print '<option value='.$data['iso'].'>'.$data['prenom'].'</option>';
                         }
 
                      mysql_close(); // ON ferme la connexion
 
                     ?>
Et je crois que j'ai aussi trouvé comment afficher des données d'une colonne spécifique avec les variables $row...
Le seul truc qui me manque, c'est le liens entre les deux...
Quand l'utilisateur choisit une commune, il faudrait qu'il réenvoie l'info (par un bouton submit?)au serveur pour que ce dernier sache les données de quelle commune il doive afficher...

Quelqu'un pourrait-il me dire comment faire ? (et me montrer un petit exemple? )

Merci d'avance

Un débutant en php

Greg
gregius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2006, 08h44   #2
Membre habitué
 
Avatar de Wookai
 
Étudiant
Inscription : septembre 2004
Messages : 309
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2004
Messages : 309
Points : 142
Points : 142
Envoyer un message via MSN à Wookai Envoyer un message via Skype™ à Wookai
Salut !

Bon, tu as fait le plus gros du boulot ! Pour transmettre la valeur sélectionnée au serveur, comme tu l'as dit, il faut utiliser un formulaire. Donc quelque chose du genre :
Code :
1
2
3
4
5
6
7
<form action="afficherDetails.php" method="post">
  <SELECT name="commune">
     <OPTION value="0">Commune 1</option>
     <OPTION value="1">Commune 2</option>
     ....
  </select>
</form>
Ensuite, dans le script afficherDetails.php, tu peux récupérer très facilement la valeur sélectionnée à l'aide de la variable $_POST, qui contient toutes les données de ton formulaire qui ont été transmises.

Code :
1
2
3
4
5
6
7
<?php
 
$communeSelectionnee = $_POST["commune"]; // contiendra 0, 1, 2, ... suivant les valeurs des champs <option>
 
// requête sql pour récupérer les détails et affichage...
 
?>
Voilà, j'espère avoit été clair !
__________________
Wookai

Wookai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2006, 08h52   #3
Candidat au titre de Membre du Club
 
Inscription : décembre 2004
Messages : 137
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 137
Points : 12
Points : 12
Citation:
Envoyé par Wookai
Salut !

Bon, tu as fait le plus gros du boulot ! Pour transmettre la valeur sélectionnée au serveur, comme tu l'as dit, il faut utiliser un formulaire. Donc quelque chose du genre :
Code :
1
2
3
4
5
6
7
<form action="afficherDetails.php" method="post">
  <SELECT name="commune">
     <OPTION value="0">Commune 1</option>
     <OPTION value="1">Commune 2</option>
     ....
  </select>
</form>
Ensuite, dans le script afficherDetails.php, tu peux récupérer très facilement la valeur sélectionnée à l'aide de la variable $_POST, qui contient toutes les données de ton formulaire qui ont été transmises.

Code :
1
2
3
4
5
6
7
<?php
 
$communeSelectionnee = $_POST["commune"]; // contiendra 0, 1, 2, ... suivant les valeurs des champs <option>
 
// requête sql pour récupérer les détails et affichage...
 
?>
Voilà, j'espère avoit été clair !

Merci, ça m'a l'air clair... le seul problème c'est que j'ai 262 communes... j'ai pas trop envie d'écrire les 262 noms, surtout que je suis sur qu'il existe une fonction... mais je ne la connais pas...
Merci

Greg
gregius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2006, 09h26   #4
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
Il te suffit de construire ta liste sélect à partir des noms de commune que tu as dans ta BDD

Comme ça si tu changes un truc dans ta base c'est mis à jour automatiquement sur la liste déroulante

EDIT : tu le fais déjà dans ton 1er post shame on me
__________________
Le . est la base de toute bonne concaténation, marre de voir des
echo "Mavar1 = $toto et Mavar2 = $titi";
ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi;
pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi;
guitou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2006, 09h37   #5
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Citation:
Envoyé par guitou12
Il te suffit de construire ta liste sélect à partir des noms de commune que tu as dans ta BDD

Comme ça si tu changes un truc dans ta base c'est mis à jour automatiquement sur la liste déroulante
En effet je comprends pas trop la remarque de tout saisir à la main vu que le script du premier post charge justement une liste déroulante dynamiquement.

La solution de Wookai est la bonne si l'affichage des détails de la commune se fait sur une deuxième page. Si tu souhaites rester sur la même page (c'est ce que je comprends perso dans le premier post) il faut passer par du JavaScript avec l'évènement onChange.

Bon courage.
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2006, 09h41   #6
Candidat au titre de Membre du Club
 
Inscription : décembre 2004
Messages : 137
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 137
Points : 12
Points : 12
Citation:
Envoyé par JWhite
En effet je comprends pas trop la remarque de tout saisir à la main vu que le script du premier post charge justement une liste déroulante dynamiquement.

La solution de Wookai est la bonne si l'affichage des détails de la commune se fait sur une deuxième page. Si tu souhaites rester sur la même page (c'est ce que je comprends perso dans le premier post) il faut passer par du JavaScript avec l'évènement onChange.

Bon courage.
Oui, j'aimerai rester sur la même page... il n'y a pas moyen avec un bouton submit?
gregius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2006, 10h18   #7
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
Citation:
Envoyé par gregius
Oui, j'aimerai rester sur la même page... il n'y a pas moyen avec un bouton submit?
Il te suffit dans ton formulaire de mettre comme action la page sur laquelle tu es... tout simplement et quand tu submit ça envoie les infos de ta liste déroulante (enfin de son item sélectionné !)
__________________
Le . est la base de toute bonne concaténation, marre de voir des
echo "Mavar1 = $toto et Mavar2 = $titi";
ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi;
pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi;
guitou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2006, 10h20   #8
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Citation:
Envoyé par gregius
Oui, j'aimerai rester sur la même page... il n'y a pas moyen avec un bouton submit?
Si, mais c'est toi qui voit.

Deux solutions :
- soit tu fais un formulaire classique qui redirige vers la page en cours, l'utilisateur sélectionne une commune puis appuie sur un bouton pour valider et ainsi rafraîchir la page avec les détails de la commune sélectionnée. (solution full PHP)
- soit tu rafraîchis la page automatiquement, lorsque l'utilisateur choisit une ville dans la liste les détails correspondant s'affichent tous seuls (solution JavaScript)

C'est à toi de voir ce qui correspond le mieux à ce que tu veux faire.
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h56.


 
 
 
 
Partenaires

Hébergement Web