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 :

jointure avec foreach


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 284
    Par défaut jointure avec foreach
    Bonjour,

    Je rencontre quelques soucis donc je ne trouve aucune solution pour le moment,pourtant je suis persuadé c'est hyper simple, je souhaite obtenir votre aide

    Mes problèmes :
    Je possède plusieurs tables avec des résultats qui sont :
    - annonce -commentaire_annonce - image
    id id id
    nom_annonce id_annonce id_annonce
    date_creation message nom_image

    Je crée mes jointures :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    requete fetchAll()
    select * from annonce
    inner join commentaire_annonce on annonce.id = commentaire_annonce.id_annonce
    inner join image on annonce.id = image.id_annonce
    group by annonce.id
    je parcours le tout avec un foreach
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    foreach sur mon fetchAll
    Je me retrouve seulement avec une annonce mai seulement avec un seul message et une image

    Je suhaiterais pouvoir obtenir 1 annonce avec tous ces messages et ces images, comment faire ?

    Merci beaucoup pour votre aide prochaine

  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
    Enlève le GROUP BY ; cette clause s'utilise pour des fonctions d'aggregation comme SUM ou COUNT ; dans ton cas, il n'y a pas de groupement à faire.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 284
    Par défaut
    Merci pour ta réponse.
    Oui mais je veux sélectionner toutes les annonces avec ces messages.
    lorsque je vais faire un foreach ça va me crée la même annonce par le nombre de message alors je veux pas quelle ce duplicate

    J'aimerais pouvoir faire un foreach, selectionner annonce et juste en dessous tous ces messages et ces images. Mais comment faire ?

    Quelqu'un serait-ils comment je pourrais traiter ces informations dans une boucle foreach ?

    J'ai des données du type :
    annonce : id
    message : il peut il en avoir 40
    images : il peut il en avoir 10

    si je fais une jointure dessus, ça va me ramener autant de ligne qu'il y'a de messages et images. Lors de mon foreach ça va me crée 40 fois la meme annonce.
    J'aimerais obtenir un seul résultat annonc avec tous ces messages et ces images.

    Quelqu'un serait-ils comment je pourrais traiter cette boucle ?

    Merci beaucoup d'avance pour votre aide

  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
    Si les images et les commentaires ne sont pas liées, il ne faut pas les joindre, il te faut une requête pour chacun.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 284
    Par défaut
    Une annonce possède des images et des commentaires donc un intérêt pour moi de les joindre en jointure.
    Par contre il peut avoir x commentaire et x image.
    Lorsque je recupére ma requête, il peut y avoir x lignes

    Ce serait-il possible avec un foreach de ramener une annonce avec ces commentaires et ces messages ?
    J'ai essayer avec group_concat pour avoir une seule ligne mais cela n'ai pas suffisant pour traiter les informations

    Je cherche une solution au niveau php pour ramener tous ces lignes (resultats) en une ligne.

    Est-ce possible ?

  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
    Comme je t'ai dit, cela n'a pas d’intérêt et pas de sens de regrouper dans la requête puisque tu serais ensuite après obligé de tout re-separer.
    Il te faut bien une requête pour les commentaires et une pour les images.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. jointure avec 2 id différent pour 1 seul table.
    Par vermo dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 10/11/2005, 15h19
  2. jointure avec clé composée de 2 colonnes
    Par free07 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 29/10/2005, 07h07
  3. Réponses: 2
    Dernier message: 27/10/2005, 11h15
  4. jointure avec xslt
    Par nemya dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 27/09/2005, 10h48
  5. [SAGE]Jointures avec SGBD
    Par mat.M dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 09/10/2003, 12h23

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