Helppppppp =>php requéte =>Sql

Liza_chidra Messages postés 32 Statut Membre -  
Liza_chidra Messages postés 32 Statut Membre -
Bonjour,

sachant que je suis novice en php, ma question est la suivante:
voici ma requête:
$res=$connexion->prepare("select distinct libelleUE from ue u join fichier f on
(u.numE = f.idue)");

echo '<select name="module">';
while ( $row = $res -> fetch())
{
?>
<option value=".'$row['numue']'."><?php echo $row['libelleue']; ?></option>;

et donc je voudrais afficher une liste dynamique (libelleUE) sans redandonce!
puis quand je selectionne une valeur le formulaire me envoie l'id du libellé!!
jai essayé de emplacé la requete " select distinct libelleUE from ue.." par "select * from ue.." mais c'est tjs le méme bléme et emplus la liste est redondante!!
merci d'avance pour votre aide!

5 réponses

  1. Liza_chidra Messages postés 32 Statut Membre
     
    sans oublier le res=>execute()!!!

    jattends vos réponses !
    0
  2. Atropa Messages postés 2051 Statut Membre 274
     
    bonjour,

    il serait intéressant de connaitre la structure des tables en question pour t'aider dans ta requête
    0
    1. Liza_chidra Messages postés 32 Statut Membre
       
      merci davoir répondu!
      alors la table ue |NumUE| LibelleUE| SemestreUE| activUE
      et la table fichier |id_fich |nom_fich |chemin_fich |id_UE
      0
    2. Atropa Messages postés 2051 Statut Membre 274
       
      ok donc si je comprend bien id_UE correspond a NumUE ?

      et tu veux récupérer tout les numUE et LibelleUE ?

      mais dans quel ordre et sous quel conditions ?
      0
    3. Liza_chidra Messages postés 32 Statut Membre
       
      ben enfait je voudais récupéré les libellé dans une liste dynamique (sans redondance) puis dés qu'on selectionne un libellé ue le fomulaire nous renvoie son id!
      pour afficher le chemin du fichier ue en question
      0
  3. Atropa Messages postés 2051 Statut Membre 274
     
    ok donc il te faut 2 requêtes

    pour afficher la liste : SELECT numUE,LibelleUE FROM ue

    par contre pour les fichiers il y a plusieurs fichier par libelle ?

    je trouve que tes champs sont très mal nommé...

    ue c'est union européenne ?

    on ne sait pas trop de quoi ca parle et en plus les répétitions sont inutiles

    pour la table ue pourquoi les champs ne sont pas : id|libelle|semestre|activ ?

    pourquoi mettre des majuscules au début des noms et répéter ue sur chaque champs ? vu que c'est dans la table

    ensuite d'une table a l'autre tu nomes le même champs num et id ce n'est pas cohérent

    Je dis ça parce que dans un gros projet si tes noms de champs ne sont pas cohérent tu risques de t'arracher les cheveux
    0
    1. Atropa Messages postés 2051 Statut Membre 274
       
      de même pour la table fichier

      id|nom|chemin|idUE serait plus cohérent inutile de répéter fichier a chaque fois

      et si il n'y a qu'un fichier a chaque fois faire une seule table pour les deux
      0
    2. Liza_chidra Messages postés 32 Statut Membre
       
      ok merci pour les conseils! (le logiciel a été créer bien longtemps mon but est de le remette a jour de faire une sorte d'extention jai pas donc le droit de toucher a la BDD existante)
      jia modifier la requéte comme vous me lavez indiquer !
      un autre souçis aparait, lorseque je fais mon chois de ue( Unité Enseignement) le chemin doit s'afficher ! mais là ya rien qui s'affiche
      le code est corrécte je compends pas!!

      <?php
      // On commence par récupérer les champs
      // On vérifie si les champs sont vides

      if(isset($_POST['module']))
      {
      $module=$_POST['module'];
      echo $module; // affiche l'idf du module en question
      }
      else $module="";

      if(isset($_POST['Submit']))//// quand je clique sur ok
      {
      // requete pour afficher le chemin du cour

      $req = $connexion->prepare(" SELECT * FROM fichier WHERE id_UE= '$module' ");
      $req->execute();

      while ($row = $req->fetch())
      {
      echo $row['chemin_fich'] ; /// probléme!!!
      }
      }
      ?>

      tout marche mais rien ne s'affiche a la fin (le chemin du fichier)
      0
    3. Atropa Messages postés 2051 Statut Membre 274
       
      c'est pas jolie tout ça

      a quoi bon utiliser des requêtes préparé si on ne se sert pas de leur principal avantage ?
      $req = $connexion->prepare(' SELECT chemin_fich FROM fichier WHERE id_UE= :module');
      $req->execute(array('module' => $module));


      comment ça rien ne s'affiche à la fin ?

      il faut qu'il y est quoi qui s'affiche ? et qu'est ce qui s'affiche actuellement ?
      0
    4. Liza_chidra Messages postés 32 Statut Membre
       
      je veux affiché le chemin du fichier (chemin_fich)
      pour l'instant ya ien qui s'affiche ! rien!
      jai essayé d'enlevé le where de la requéte (' SELECT chemin_fich FROM fichier') et là d'un coup c'est tout les chemin qui s'affiche!
      je pensse que le bléme viens de $module
      0
    5. Atropa Messages postés 2051 Statut Membre 274
       
      ok et il peut y avoir plusieurs fichiers pour un même id_UE ?

      as tu essayés avec une vrai requete préparé ? et des simple quote ?

      je ne comprend pas cette mani de mettre des doubles quote alors que c'est juste plus lourd...
      0
  4. Atropa Messages postés 2051 Statut Membre 274
     
    essaie
    var_dump($_POST);


    pour voir si tu recois bien les bonnes valeurs
    0
    1. Liza_chidra Messages postés 32 Statut Membre
       
      un grand merci pour votre aide! franchement jai enfin réussis a affiché les chemins grace a vous! mille fois merciiiiiiiiiiiiiiiiiiiii
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Atropa Messages postés 2051 Statut Membre 274
     
    Quelle était la soluce ?
    0
    1. Liza_chidra Messages postés 32 Statut Membre
       
      enfaite sté une erreur de syntaxe:
      <option value=".'$row['numue']'."><?php echo $row['libelleue']; ?></option>;
      fallait écire
      <option value="<?php echo $row['numue'] ?>"><?php echo $row['libelleue']; ?></option>;

      merci encore
      0