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 :

requete avec join compliqué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 confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 210
    Par défaut requete avec join compliquée
    bonjour à tous
    je pensais avoir résolu mon problème dans le précédent post (que je ne trouve plus !!) mais pas du tout:

    je bataille avec les jointures :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    $sql = ('SELECT * FROM  activity INNER JOIN fiche ON  activity.numclt = fiche .numclt  WHERE  fiche.type1 = "client" OR fiche.type1 = "prospect" ');
     
    $result = $bdd->query($sql);
    $resultat=$result->fetchAll(PDO::FETCH_ASSOC);
    foreach ($resultat as $key => $row  ) 
    { 
     
    echo  '<span>'.$row['nom'].'</span>';echo '----';
    echo  '<span>'.$row['prenom'].'</span>';echo '----';
    etc.......
    etc.......
    } $result->closeCursor();
    le problème c'est que la table [activity] contient 2 lignes concernant le $numclt alors que la table "principale" [FICHE] n'en contient q'une.
    Donc à cause d' [activity] la requête reparcours la table [FICHE] une deuxième fois ....Résultat :
    dede----albert--------london------------0660652365
    0494311124----taratata@free.fr----prospect----2015-02-01----activity client 1 case 1

    dede----albert--------london------------0660652365
    0494311124----taratata@free.fr----prospect----2015-07-08----activity client 1 case 2
    et comme je voudrais JOINDRE 5 autres tables qui ont le même [numclt] mais avec des nbrs de lignes différents, je crains un peu !

    Voila merci de votre aide
    .

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ton resultat est normal : tu as une ligne de résultat par activité.
    Que voudrais-tu ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Inscrit en
    Février 2003
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 19
    Par défaut
    et bien j'aimerai avoir :
    dede----albert--------london------------0660652365
    0494311124----taratata@free.fr----prospect----2015-02-01----activity client 1 case 1----activity client 1 case 2
    c'est a dire la fiche d'identité d'une personne [table fiche] et tout ce qui la concerne ce trouvant dans les autres tables...
    mais en même temps que j’écris je me demande si je ne devrais pas mettre chaque variable dans un array et ensuite une fois les données extraitent, afficher sans les doublons
    mais ça va être laborieux !! et en général quand c'est laborieux c'est qu'on est dans l'erreur !

    Merci de ton attention

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Deja tu n'as pas un problème de doublons : tes données sont conformes, c'est seulement ton affichage qui n'est pas celui que tu veux.

    Une méthode simple à écrire est de classer tes résultats par "fiche" et d'afficher les infos de fiche quand on passe d'une fiche à une autre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $sql = ('SELECT * FROM  activity INNER JOIN fiche ON  activity.numclt = fiche .numclt  WHERE  fiche.type1 IN ("client","prospect") ORDER BY fiche_id');
     
    $result = $bdd->query($sql);
    $current_fiche = '';
    while ($row = $result->fetch(PDO::FETCH_ASSOC)) 
    { 
        if ($row['fiche_id'] != $current_fiche) {
             echo  '<span>'.$row['nom'].'</span>';echo '----';
             echo  '<span>'.$row['prenom'].'</span>';echo '----';
             $current_fiche = $row['fiche_id'];
        }
    echo  '<span>'.$row['activite'].'</span>';echo '----';
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 210
    Par défaut
    merci,
    mais là ça m'affiche uniquement [activity] :

    2015-02-01----activity client 1 case 1

    2015-07-08----activity client 1 case 2
    malgré le " $current_fiche = $row['numclt'] " ( que j'ai aussi déplacé en dehors du IF pour tester!)
    le fait qu'il y ai 1 tuple appelé [numclt] dans chaque table, est ce que ça peut prêter à confusion dans la requête ?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Pardon ce n'est pas == c'est !=
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Doctrine2/ZF2 Requete avec Join
    Par schumi59 dans le forum Zend Framework
    Réponses: 2
    Dernier message: 24/09/2013, 09h04
  2. Requete avec JOIN
    Par przvl dans le forum Requêtes
    Réponses: 3
    Dernier message: 16/09/2011, 14h05
  3. Requete avec join venture ou macro?
    Par youki_22 dans le forum Access
    Réponses: 2
    Dernier message: 02/04/2010, 08h26
  4. requete avec join
    Par Jasmine80 dans le forum Requêtes
    Réponses: 7
    Dernier message: 20/10/2008, 15h56
  5. [Hibernate]Problème de requete avec "join fetch"
    Par gauloiskiki dans le forum Hibernate
    Réponses: 4
    Dernier message: 21/06/2006, 09h54

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