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 :

Affiche d'un champ d'une table lié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 éclairé Avatar de bond70
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 300
    Par défaut Affiche d'un champ d'une table liée ?
    Salut,

    Voilà j'ai fait une requête afin d'afficher les données présentes dans ma table etudiant. Seulement, le libelle du semestre des étudiants est contenu dans la table semestre qui est liée à la table etudiant via cette relation :

    etudiant.semestreId=semestre.idSemestre

    Mes tables sont faites comme çà :

    ETUDIANT(idEtudiant,nomEtudiant,prenomEtudiant...,emailEtudiant,#semestreId)
    SEMESTRE(idSemestre,libelleSemestre)
    Pour l'instant voici comme j'affiche les information des étudiants :

    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
    $req = mysql_query($search) or die('Erreur SQL !<br>'.$search.'<br>'.mysql_error());
     
     
    //on verifie si la recherche renvoi un resultat
    if(mysql_num_rows($req)>1){
    // on fait une boucle qui va faire un tour pour chaque enregistrement
    	while($data = mysql_fetch_row($req))
     
    	    {
    	    	echo "<div></div>";
    	    	echo "<div></div>";
    			echo $data[1].' '.$data[2].' '.$data[3].' '.$data[4].' '.$data[5].' '.$data[6].' '.$data[7].' '.$data[8].' '.$data[9].' '.$data[17];
     
    	    }
    }
    Pour l'instant la variable $data[17] n'affiche que "semestre.semestreId" de la table "semestre". Moi je voudrais afficher "semestre.libelleSemestre" qui est présent dans la table "semestre"

    N'y a t'il pas moyen de faire un truc du genre :

    Là où il y a le $data[17] donne moi le libelleSemestre de la table Semestre qui est associée à la table Etudiant

    Merci !

  2. #2
    Membre expérimenté Avatar de BlackSmith
    Inscrit en
    Mars 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2008
    Messages : 181
    Par défaut
    Bonjour,

    il faut que tu modifie ta requête sql pour faire une jointure entre la table etudiant et la table semestre.

    dans ta requête il faudra que tu la modifie pour quel ressemble à ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT e.idEtudiant,e.nomEtudiant,e.prenomEtudiant, s.idSemestre, s.libelleSemestre
    FROM ETUDIANT e 
     JOIN SEMESTRE s on e. semestreId = s.idSemestre

  3. #3
    Membre éclairé Avatar de bond70
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 300
    Par défaut
    Ok et pour afficher le semestre.libelleSemestre je dois faire un echo de quoi ?

    $data[17]
    Merci !

  4. #4
    Membre expérimenté Avatar de BlackSmith
    Inscrit en
    Mars 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2008
    Messages : 181
    Par défaut
    tu dois pouvoir le faire avec ça en mettant MYSQL_ASSOC dans le fetch_row

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $data['libelleSemestre']
    ou en indiquant le numéro de colonne comme tu fais d'habitude.

  5. #5
    Membre éclairé Avatar de bond70
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 300
    Par défaut
    Merci à toi !

  6. #6
    Membre éclairé Avatar de bond70
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 300
    Par défaut
    Re,

    Ma requête ne marche pas et je n'arrive toujours pas à afficher semestre.libelleSemestre correpondant à un e.idEtudiant précis...

    J'ai testé avec echo de $data[17] et de $data['libelleSemestre']

    mais le premier m'affiche l'idSemestre et le deuxième me met une erreur :

    Notice: Undefined index: libelleSemestre
    Comment puis-je AFFICHER ce foutu libelleSemestre ?

    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
    <?php
     
    //Appel des différentes fonctions d'une page PHP
     
    require_once("fonctions.php");
    entete();
     
     
    $link = mysql_connect(HOST, USER, PASS);
    mysql_select_db(BASE, $link);
     
    $idetudiant  = $_GET["idEtudiant"];
     
     
    $modif="SELECT * FROM etudiant e, semestre se JOIN semestre se on e.semestreId=se.idSemestre WHERE e.idEtudiant=$idetudiant";
     
    $req = mysql_query($modif) or die('Erreur SQL !<br>'.$modif.'<br>'.mysql_error());
     
    if(mysql_num_rows($req)>0){
     
    	$data = mysql_fetch_row($req);
     
    	banniere("Modification du cursus de ".$data[1].' '.$data[2].' '.$data['libelleSemestre']);
    	banniere("Modification du cursus de ".$data[1].' '.$data[2].' '.$data[17]);
     
    }
    MERCI !

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/04/2010, 13h54
  2. Comment modifier un champ dans une table liée ?
    Par HookerSeven dans le forum Access
    Réponses: 11
    Dernier message: 05/02/2006, 23h50
  3. afficher tous les champs d'une table
    Par julio84 dans le forum ASP
    Réponses: 8
    Dernier message: 19/01/2005, 10h31
  4. [select dans case] reconnaitre un champ d une table liée
    Par the_edge dans le forum MS SQL Server
    Réponses: 14
    Dernier message: 22/10/2004, 16h47
  5. Afficher tous les champs d'une table avec dbexpress et MySQL
    Par LHT dans le forum Bases de données
    Réponses: 2
    Dernier message: 25/06/2004, 17h11

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