Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème requête mysql sur 3 tables

    8 septembre 2010 à 15:53:17

    Bonjour

    Je m'explique, j'ai trois tables :
    - rdv (ID_rdv, ID_structure, ID_participant1, ID_participant2...)
    - structures (ID_structure, nom...)
    - utilisateurs (ID_utilisateur, nom...)

    Chaque enregistrement de table rdv contient une référence structure identifiée par son ID et 2 participants identifiés par des leurs ID (participant1, participant2) correspondant à des utilisateurs.

    Ensuite, je souhaite afficher les RDV des prochains jours...

    Je fais :


    $date=date("Y-m-d");

    $reponse = $bdd->query('
    SELECT rdv.date date, rdv.heure heure, structures.Nom nom, structures.Ville ville, utilisateurs.prenom prenom
    FROM rdv
    LEFT JOIN structures
    ON rdv.ID_structure=structures.ID_structure
    LEFT JOIN utilisateurs
    ON rdv.ID_participant1=utilisateurs.ID_utilisateur OR rdv.ID_participant2=utilisateurs.ID_utilisateur
    WHERE date >= \'' . $date . '\'
    ORDER BY date ASC
    ');

    while ($donnees = $reponse->fetch())
    {
    $daterdv=datefr($donnees['date']);
    $heurerdv=heureh($donnees['heure']);
    echo $donnees['prenom'] . ' : ' . $donnees['nom'] . ' à ' . $donnees['ville'] . ' : RDV à ' . $heurerdv . ' le ' . $daterdv . '<br>';
    }

    $reponse->closeCursor(); // Termine le traitement de la requête

    ---

    Ceci me donne en résultat

    Françoise : Lieu1 à Ville1 : RDV à 10h00 le 09/09/2010
    Pascal : Lieu1 à Ville1 : RDV à 10h00 le 09/09/2010
    Françoise : Lieu2 à Ville2 : RDV à 15h00 le 10/09/2010
    Pascal : Lieu2 à Ville2 : RDV à 15h00 le 10/09/2010

    ---

    J'aimerais obtenir

    Françoise, Pascal : Lieu1 à Ville1 : RDV à 10h00 le 09/09/2010
    Françoise,Pascal : Lieu2 à Ville2 : RDV à 15h00 le 10/09/2010

    Merci d'avance pour votre aide
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      8 septembre 2010 à 18:37:36

      SELECT
            r.date,
            r.heure,
            s.nom,
            s.ville,
            u1.prenom u1_prenom,
            u2.prenom u2_prenom
         FROM
            rdv r
            LEFT JOIN structures s ON r.ID_structure = s.ID_structure
            LEFT JOIN utilisateurs u1 ON r.ID_participant1 = u1.ID_utilisateur
            LEFT JOIN utilisateurs u2 ON r.ID_participant2 = u2.ID_utilisateur
         WHERE
               date >= \'' . $date . '\'
         ORDER BY date ASC;
      
      • Partager sur Facebook
      • Partager sur Twitter

      Problème requête mysql sur 3 tables

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown