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 :

Ecriture d'une requête [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
    Avril 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 185
    Par défaut Ecriture d'une requête
    Bonjour à toutes et tous,

    Voici ma requête
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT id_com as id, com_type as type, com_prix as prix, com_contexte as contexte, bbir_activite as activite
    FROM bbir_commerces
    JOIN bbir_c_activites_exercees ON fk_id_com = idbbir_com
    JOIN bbir_activite ON idbbir_activite = c_fk_id_activite
    ORDER BY com_creation DESC

    Elle est fonctionnelle et retourne 1 ligne si une seule activité, 3 lignes si 3 activités.
    Je voudrais savoir comment écrire cette requête pour 'concaténer' les activités dans un seul champs ? ou à défaut comment réaliser le regroupement avec PHP ?
    Espérant avoir été assez clair, je vous remercie de votre aide.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- une solution SQL possible ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GROUP_CONCAT(... ORDER BY ... ASC SEPARATOR ', ')
    2- Sinon en PHP :
    • soit séparer en 2 requêtes
    • soit bidouiller...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 185
    Par défaut
    Re, merci de votre aide.
    Si je fais
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT idbbir_commerces as id, com_type as type, com_prix as prix, com_contexte as contexte, GROUP_CONCAT (bbir_activite) as activite FROM bbir_commerces JOIN bbir_c_activites_exercees ON fk_id_commerce = idbbir_commerces JOIN bbir_activite ON idbbir_activite = c_fk_id_activite ORDER BY com_creation DESC
    j'obtiens :
    #1370 - execute command denied to user ... for routine GROUP CONCAT (dans PMA)
    Si je fais :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT idbbir_commerces as id, com_type as type, com_prix as prix, com_contexte as contexte, CONCAT(bbir_activite) as activite FROM bbir_commerces JOIN bbir_c_activites_exercees ON fk_id_commerce = idbbir_commerces JOIN bbir_activite ON idbbir_activite = c_fk_id_activite GROUP BY id ORDER BY com_creation DESC
    je n'obtiens que l'activité 1

    ou je n'ai pas compris ta solution ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Essaie :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT 
    	COM.id_com AS id, 
    	COM.com_type AS type, 
    	COM.com_prix AS prix, 
    	COM.com_contexte AS contexte,
    	GROUP_CONCAT( ACT.bbir_activite ORDER BY ACT.bbir_activite ASC SEPARATOR ', ') AS list_activites
    FROM bbir_commerces COM
    JOIN bbir_c_activites_exercees ACX 
    	ON ACX.fk_id_com = COM.idbbir_com
    JOIN bbir_activite ACT 
    	ON ACT.idbbir_activite = ACX.c_fk_id_activite
    ORDER BY COM.com_creation DESC
    N.B. COM, ACT et ACX sont des ALIAS des noms des tables.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 185
    Par défaut
    La requête renvoie :
    Warning: #1260 Row 94 was cut by GROUP_CONCAT()

  6. #6
    Invité
    Invité(e)
    Par défaut
    C'est peut-être une ligne SANS "activité" ?

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/08/2017, 16h38
  2. Ecriture d'une requète
    Par atk_49 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/02/2015, 10h34
  3. [AJAX] Ecriture dans un fichier json avec une requête AJAX
    Par DarkPoster14 dans le forum jQuery
    Réponses: 1
    Dernier message: 10/07/2012, 09h45
  4. Ecriture d'une variable dans une requête
    Par papilou86 dans le forum Access
    Réponses: 2
    Dernier message: 02/06/2006, 09h03
  5. [BDD] Enregistrer le résultat d'une requête
    Par Mowgly dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/06/2002, 15h26

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