IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Problème de liste déroulante utilisant une valeur d'une autre liste [Débutant(e)] [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Technicien maintenance
    Inscrit en
    Mai 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2007
    Messages : 123
    Par défaut Problème de liste déroulante utilisant une valeur d'une autre liste
    Bonjour,

    Je suis toujours en stage, je débute toujours en pHp. Mon tuteur de stage veut que pour le choix d'un club que je fasse un premier tri par discipline, puis par comité et que j'affiche finalement les clubs qui restent.

    Ma table discipline se compose de :
    NUM_DISCIPLINE, NOM_DISCIPLINE et NUM_FEDERATION (clé étrangère)

    Dans une fédération, il y a plusieurs ligues et dans une ligue il y a plusieurs comités

    Ma table fédération se compose de :
    NUM_FEDERATION, NOM_FEDERATION (et adr, tel... mais c'est pas utile)

    Ma table ligue se compose de
    NUM_LIGUE, NOM_LIGUE et NUM_FEDERATION (et adr, tel... mais c'est pas utile)

    Ma table comite se compose de :
    NUM_COMITE, NOM_COMITE, NUM_LIGUE (et adr, tel... mais c'est pas utile)

    Ma table club se compose de :
    NUM_CLUB, NOM_CLUB, NUM_COMITE (et adr, tel... mais c'est pas utile)



    Je voudrai créer plusieurs listes déroulantes.
    On choisit dans une liste la discipline.
    On valide
    Une nouvelle liste s'affiche avec les comités correspondants aux comités appartenant à la discipline choisit.
    On valide
    Une nouvelle Une nouvelle liste s'affiche avec les clubs correspondants aux clubs appartenant au comité choisit.

    Je sais pas si j'ai été claire et je sais surtout pas comment je dois programmer ca.

  2. #2
    Membre éprouvé Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Par défaut
    salut,
    ça serait plus intéressant pour toi d'essayer de coder par toi même. Si tu as des soucis plus spécifiques, tu trouveras une réponse sur le forum.

    Pour t'aider à démarrer.

    * Il faut que tu fasses un formulaire.
    * A partir du deuxième champ, tu mets une condition qui te permette de l'afficher que si le champ précédent est renseigné.

    Comme tu as des tâches répétitives. Tu peux mettre le nom de tes champs dans un tableau et créer des fonctions. Par exemple, une pour effectuer la requête, et une pour générer ton champ select.


    bon courage.

  3. #3
    Membre confirmé
    Technicien maintenance
    Inscrit en
    Mai 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2007
    Messages : 123
    Par défaut
    J'ai commencé à coder, mais quand je clique sur valider il n'y a rien qui s'affiche dans la deuxième liste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <? require "Includes/fonctions.php"; ?>
    <div class="titre">Choix de la discipline :</div>
     
    <?
    $longeur_max=60;
    //premier formulaire : choix de la discipline
    //liste des fédérations
    echo "<form name='formdiscipline' method='post' action=''>";
    echo "<br><br><br>";
    						$reqmvt="select NUM_DISCIPLINE, NOM_DISCIPLINE from DISCIPLINE order by NOM_DISCIPLINE";
    						$mvt=mysql_query($reqmvt);
    						echo "<select name='discipline'><option value=''>-- Selectionnez --</option>";
    						while ($row=mysql_fetch_array($mvt))
    						{
    							$txt=Tronquer_Texte($row["NOM_DISCIPLINE"], $longeur_max);
    							echo "<option value='".$row["NUM_DISCIPLINE"]."'>".$txt."</option>";						 					
    						}
    						echo "<input type='submit' name='submit' value='Valider Resultat' class='bouton'>";
    						echo "</form>";
     
     
    if (isset($_POST['discipline']))
    	{
    	if ($_POST['discipline']!=NULL)
    		{
    		echo "<form name='formcomite' method='post' action=''>";
    		$comite="select NUM_COMITE, NOM_COMITE FROM COMITE, LIGUE, FEDERATION ORDER BY NOM_COMITE WHERE comite.num_ligue=ligue.num_ligue AND ligue.num_federation=federation.num_federation AND federation.num_discipline=".$_POST['discipline'];
    		$reqcomite=mysql_query($comite);
    		echo "<select name='comite'><option value=''>-- Selectionnez --</option>";
    		while ($row=mysql_fetch_array($reqcomite))
    		{
    			$txt=Tronquer_Texte($row["NOM_COMITE"], $longeur_max);
    			echo "<option value='".$row["NUM_COMITE"]."'>".$txt."</option>";						 					
    		}
    		echo "</select><br><br>";
    		echo "<input type='submit' name='submit' value='Valider Resultat' class='bouton'>";
    		echo "</form>";
    		}
    		}

  4. #4
    Membre chevronné Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut
    Ta deuxième requete a un probleme je crois...tu mets la clause ORDER BY avant WHERE alors qu'elle doit etre après.

  5. #5
    Membre confirmé
    Technicien maintenance
    Inscrit en
    Mai 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2007
    Messages : 123
    Par défaut
    Bon, l'ORDER BY n'est pas très utile et même en l'enlevant, ca marche pas.

  6. #6
    Membre chevronné Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut
    Tu peux remettre le code que tu as maintenant?

  7. #7
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut


    Si ta 2e liste apparait, mais n'est pas remplie, il ya de fortes chances pour que le problème soit au niveau de la requête sql. Je te conseille donc d'utiliser le classique die (mysql_error()) pour trouver le problème.
    Et pour les jointures tu peux utiliser JOIN ON à la place des successions de where...
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $comite="select NUM_COMITE, NOM_COMITE 
    FROM COMITE
     JOIN LIGUE ON comite.num_ligue=ligue.num_ligue
     JOIN FEDERATION ON ligue.num_federation=federation.num_federation
    WHERE federation.num_discipline=".$_POST['discipline'];
    $reqcomite=mysql_query($comite) or die($comite.' : '.mysql_error());
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  8. #8
    Membre confirmé
    Technicien maintenance
    Inscrit en
    Mai 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2007
    Messages : 123
    Par défaut
    Ma deuxieme liste apparait il y a juste ecrit dedans
    >-- Selectionnez --<

    Tu l'écris comment le classique die (mysql_error()) et il me faut le mettre où.

    Le join on s'écrit comment ?

  9. #9
    Membre chevronné Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut
    Après tes mysql_query met

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query(...) or die(mysql_error());
    et pour les JOIN si tu ne connait pas oublie pour le moment (mais dès que tu as le temps tu peux jeter un oeil dessus ca fait des requête bien plus clair)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. Réponses: 8
    Dernier message: 22/12/2014, 20h58
  3. Réponses: 6
    Dernier message: 02/06/2010, 09h40
  4. Présélectionner une valeur par défaut dans liste déroulante
    Par kate59 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 25/07/2009, 22h52
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo