p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Invité de passage
    Homme Profil pro
    Inscrit en
    novembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2011
    Messages : 4
    Points : 2
    Points
    2

    Par défaut Liste liée avec connexion odbc

    Bonjour

    Je suis en train de créer un formulaire ou on pourrait renseigner des informations à propos de formations proposées.
    Je suis à un stade ou j'ai vraiment un problème, c'est quand je crée une liste liée (liste déroulante change en fonction du premier choix). J'ai décidé de faire appel uniquement au PHP et non à du javascript ou à de l'ajax.
    J'ai tout de même testé ma requête sous access et elle marche :
    Voici là ou çà coince :

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    //Connexion a la base de donnée
    		$cnx=odbc_connect("formation","root","") or die ("Impossible de se connecter Ã* la base de donnée");
     
    		//Création de la requête
    		$sql="SELECT intitule_gfe 
    		        FROM GFE 
    			ORDER BY intitule_gfe";
     
    		//Préparation et exécution de la reqûete
    		$res=odbc_exec($cnx,$sql);
     
    		//Affichage de la requête
    		echo '<p>
    			<label for="gfe"><li>GFE :</li></label><br/>
    			<select name="gfe" id="gfe">';
    			echo "<option value='-1'>- - -Choisissez un GFE- - -</option>";
    			while($row=odbc_fetch_array($res))
    			{
    				echo "<option value='".$row['intitule_gfe']."'>".$row['intitule_gfe']."</option>";
    			}
    			echo '</select>
    		</p>';
     
    		//Requête liée Ã* la première liste déroulante
    		if(isset($_POST['$row[intitule_gfe]']) && $_POST['$row[intitule_gfe]'] != -1)
    		{
    			//Préparation de la requête 
    			$sql2="SELECT SSGFE.intitule_ssgfe 
    				  FROM SSGFE,GFE,Posseder
    				  WHERE GFE.num_gfe=Posseder.num_gfe
    				  AND Posseder.num_ssgfe=SSGFE.num_ssgfe
    				  AND GFE.intitule_gfe= ".$row[intitule_gfe]."
    				  ORDER BY intitule_ssgfe";
     
    			  //Préparation et exécution de la requête
    			  $res2=odbc_exec($cnx,$sql2);
     
    			  //Affichage de la requête
    					echo '<p>
    				    <label for="ssgfe"><li>Sous-GFE</li></label><br/>
    					<select name="ssgfe" id="ssgfe">';
    					while($row2=odbc_fetch_array($res2))
    					{
    						echo '<option value="'.$row2['intitule_ssgfe'].'">'.$row2['intitule_ssgfe'].'</option>';
    					}
    					echo '</select> </p>';
    		}
    		//Deconnexion
    		odbc_close($cnx);
    		?>
    Il ne m'affiche aucune erreur mais je crois que le compilateur n'arrive pas à faire le test isset() dans $row[intitule_gfe]. Pourquoi, çà devrait marcher non ?

    Si j'ignore le test, alors il va me détecter une erreur au niveau du odbc_exec. En effet, le compilateur me signale une erreur au niveau de la jointure, mais je sais que la requête est bonne.

    Merci d'avance d'avoir lu mon message en attendant une réponse.

  2. #2
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    3 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : mars 2004
    Messages : 3 710
    Points : 8 676
    Points
    8 676

    Par défaut

    Bonjour,
    Ta syntaxe $_POST est malformée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_POST['$row[intitule_gfe]'] => $_POST[$row['intitule_gfe']]
    Et puis, ton if(isset($_POST['$row[intitule_gfe]']) est en dehors du la boucle while() qui définit $row à chaque passage. A moins que ton $sql ne retourne qu'un seul et unique enregistrement, dans ce cas ça ne devrait pas poser de problème.

    Je sais que c'est (presque) équivalent mais il est préférable d'utiliser une jointure correctement formée à la place des critères des jointures dans le WHERE. Un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $sql2 = 
       "SELECT 
          SSGFE.intitule_ssgfe 
       FROM 
          SSGFE
             INNER JOIN Posseder ON SSGFE.num_ssgfe = Posseder.num_ssgfe
             INNER JOIN GFE ON Posseder.num_gfe = GFE.num_gfe
       WHERE
          GFE.intitule_gfe= ".$row['intitule_gfe']."
       ORDER BY 
          intitule_ssgfe";
    # Dans la Création, tout est permis mais tout n'est pas utile...

  3. #3
    Invité de passage
    Homme Profil pro
    Inscrit en
    novembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2011
    Messages : 4
    Points : 2
    Points
    2

    Par défaut

    Je ne vais pas pouvoir te répondre si çà marche car le poste ou je suis, je n'ai pas accès au localhost. je serais sur le poste afin de corriger mercredi, et je te dirais çà. En tout cas, merci pour ton aide

Discussions similaires

  1. Problème exécution requête avec connexion ODBC/PHP
    Par nicaud dans le forum PHP & ODBC
    Réponses: 2
    Dernier message: 20/04/2008, 13h20
  2. Listes liées avec rechargement spécifique
    Par jpascal dans le forum Formulaires
    Réponses: 2
    Dernier message: 05/04/2008, 02h32
  3. Problème avec mes listes liées avec Ajax
    Par Zak_92 dans le forum AJAX
    Réponses: 10
    Dernier message: 15/08/2007, 12h19
  4. [1.0.12]Listes liées avec Javascript
    Par slim dans le forum Joomla
    Réponses: 5
    Dernier message: 08/06/2007, 23h07
  5. Listes liées avec AJAX
    Par oranocha dans le forum AJAX
    Réponses: 1
    Dernier message: 13/02/2007, 06h59

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