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 :

Mauvaise correspondance des ID dans 2 tables différentes


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Octobre 2017
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Octobre 2017
    Messages : 50
    Par défaut Mauvaise correspondance des ID dans 2 tables différentes
    Bonjour l'équipe PHP

    Je souhaite afficher le 'LOC_NOM' contenu dans la table 'locataire' là ou le 'MVT_LOC_ID' de la table 'mouvement' est égale au 'LOC_ID' de la table locataire.

    Voici la structure de mes tables:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    INSERT INTO `mouvement` (`MVT_ID`, `MVT_LOC_ID`, `MVT_DATE`, `MVT_TYPE`, `MVT_MT`) VALUES
    (3, 2, '2020-05-11', 'ASS', 555),
    (2, 3, '2020-05-18', 'ASS', 150),
    (4, 2, '2020-05-11', 'ASS', 555),
    (5, 3, '2020-05-18', 'ENCESPECE', 111),
    (6, 3, '2020-05-19', 'LOYER', 400),
    (7, 2, '2020-05-19', 'ENCCHEQUE', 999);
    COMMIT;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO `locataire` (`LOC_ID`, `LOC_NOM`, `LOC_NOMENTIER`, `LOC_CAF`, `LOC_TEL`, `LOC_MAIL`, `LOC_ADRESSE`) VALUES
    (3, 'Loc3', 'Monsieur Loc3', 'qs', '', '', ''),
    (2, 'Loc2', 'Monsieur Loc2', '', '', '', '');
    COMMIT;
    Mon code pour afficher le résultat:
    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
    <?php
    $db = include 'db_mysql.php'; 
    $sql = 'SELECT *
    		FROM   mouvement
    			   INNER JOIN locataire
    					 ON mouvement.MVT_LOC_ID = locataire.LOC_ID';
    $select = $db->prepare($sql);
    $select->bindParam('mouvement.MVT_LOC_ID', $markerid, PDO::PARAM_INT);
    $select->execute();
     
    $markerData = $select->fetch(PDO::FETCH_ASSOC);
     
    $name = $markerData['LOC_NOM'];
    echo $name;
    ?>
    Le code affiche toujours le même nom à savoir 'Loc2'

    D'où proviens cette erreur et comment afficher le résultat correct ?

  2. #2
    Membre chevronné Avatar de ma5t3r
    Homme Profil pro
    Développeur freelance
    Inscrit en
    Mai 2015
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2015
    Messages : 320
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $sql = 'SELECT * FROM   mouvement as m INNER JOIN locataire as l ON m.MVT_LOC_ID = l.LOC_ID WHERE m.MVT_LOC_ID = :mvt_loc_id';
    $select = $db->prepare($sql);
    $select->bindValue(':mvt_loc_id', $markerid, PDO::PARAM_INT);
    $select->execute();
    $markerData = $select->fetch(PDO::FETCH_ASSOC);

  3. #3
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Octobre 2017
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Octobre 2017
    Messages : 50
    Par défaut
    Merci Ma5t3R pour ta réponse.

    Après Test, Wamp renvoie la réponse suivante :
    Notice: Undefined variable: markerid:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    										$db = include 'db_mysql.php'; 
    										$sql = 'SELECT * FROM   mouvement as m INNER JOIN locataire as l ON m.MVT_LOC_ID = l.LOC_ID WHERE m.MVT_LOC_ID = :mvt_loc_id';
    										$select = $db->prepare($sql);
    										$select->bindValue(':mvt_loc_id', $markerid, PDO::PARAM_INT);
    										$select->execute();
    										$markerData = $select->fetch(PDO::FETCH_ASSOC);
    										$name = $markerData['LOC_NOM'];
    										echo $name;
    						?>

  4. #4
    Membre chevronné Avatar de ma5t3r
    Homme Profil pro
    Développeur freelance
    Inscrit en
    Mai 2015
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2015
    Messages : 320
    Par défaut
    C'est pas moi qui l'invente cette variable, elle fait partie du code que tu as donné.
    Toi même, tu utilises cette variable dans ton code.

    Elle stocke l'ID (mvt_loc_id) sur lequel s'appuie ta requête SQL.

  5. #5
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Octobre 2017
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Octobre 2017
    Messages : 50
    Par défaut
    Salut,
    En fait la variable était $markerData et non $markerID, mais même après avoir corrigé celà, toujours la même erreur.:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    										$db = include 'db_mysql.php'; 
    										$sql = 'SELECT * FROM   mouvement as m INNER JOIN locataire as l ON m.MVT_LOC_ID = l.LOC_ID WHERE m.MVT_LOC_ID = :MVT_LOC_ID';
    										$select = $db->prepare($sql);
    										$select->bindValue(':MVT_LOC_ID', $markerid, PDO::PARAM_INT);
    										$select->execute();
    										$markerid = $select->fetch(PDO::FETCH_ASSOC);
     
    										echo $markerid['LOC_NOM'];
    						?>
    Code erreur:
    Notice: Undefined variable: markerid

  6. #6
    Membre chevronné Avatar de ma5t3r
    Homme Profil pro
    Développeur freelance
    Inscrit en
    Mai 2015
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2015
    Messages : 320
    Par défaut
    D'après ce que j'ai compris, tu cherches un enregistrement en fonction de son ID
    Donc, sur cette ligne, tu dois remplacer $markerid par l'identifiant recherché.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $select->bindValue(':MVT_LOC_ID', $markerid, PDO::PARAM_INT);
    ou plus haut, tu dois assigner une valeur à $markerid.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $markerid = 15; //par exemple

  7. #7
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Octobre 2017
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Octobre 2017
    Messages : 50
    Par défaut
    Effectivement j'ai donné une valeur au paramètre $markerid et le tout fonctionne parfaitement.

    Encore merci!!

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

Discussions similaires

  1. récupérer des valeur dans 2 tables différentes
    Par anthony25 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 10/12/2019, 11h27
  2. Réponses: 9
    Dernier message: 09/11/2015, 13h14
  3. Ordre des colonnes dans la requête différent de celui de la table
    Par HenriJ dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 06/02/2013, 07h51
  4. Réponses: 2
    Dernier message: 30/04/2009, 12h46
  5. Ajouter des champs d'une table différente dans un formulaire
    Par Bouom771 dans le forum Modélisation
    Réponses: 5
    Dernier message: 10/01/2008, 20h03

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