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

 MySQL Discussion :

[Mysql][tableur]récupération et mise en forme des données d'une base


Sujet :

MySQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut [Mysql][tableur]récupération et mise en forme des données d'une base
    Bonjour
    Je viens de terminer un très gros formulaire en ligne,
    dont les réponses représentent 34000 lignes dans la base Mysql. Pour exploiter ces données , j'extrais de la base les données de 4 champs :
    requête SQL :
    SELECT `id_form` , `ele_caption` , `ele_value` , `uid`
    FROM `xoops_form_form`
    WHERE 1 AND `id_form` != 21 AND `ele_caption` != '{null}' AND `uid` != 0
    y a t-il un moyen, par une requête SQL d'extraire les données, de façon à avoir toutes les réponses d'un user sur une seule ligne ?
    du genre :


    *correction sur l'image : uid=1 doit être sur la même ligne que ele_value=1

    merci pour le coup de main

  2. #2
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Bonjour

    Le SGBD n'est pas l'outil plus approprié pour faire ce genre de mise en forme.

    http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L9

  3. #3
    Membre éprouvé
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Points : 1 249
    Points
    1 249
    Par défaut
    Si quelqu'un connait je suis preneur... mais je n'y crois pas

    Je vois deux solutions :
    - Si il y a un nombre fixé (ou un maximum petit) de réponses par utilisateur il est possible de faire des jointures prédéterminées, une par colonne. C'est moche et je suppose inapplicable ici.
    - Passer par un GROUP BY et concaténer (GROUP_CONCAT) les résultats dans une colonne. Si c'est pour utiliser dans du code ça ne sera pas beaucoup plus simple à utiliser qu'une liste des réponses triées par utilisateur Si c'est pour finir en fichier csv (ou équivalent) on peut obtenir quelque chose en insérant des ';' lors de la concaténation (une version des CONCAT doit prendre un séparateur) afin de démultiplier la colonne.

    A pars ça en se limitant à du SQL je ne vois pas.


    Edit car arrivé après la bataille:
    Le SGBD n'est pas l'outil plus approprié pour faire ce genre de mise en forme.
    Amen !

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    merci Maximilian
    cela est effectivement une réponse, bien qu'avec mon niveau débutant dans le langage SQL, je n'ai pas réussi à reproduire pour mon cas :

    j'ai essayé ça :
    FROM `xoops_form_form` WHERE `ele_caption` = 001 GROUP BY `uid`
    xoops_form_form étant la table,
    ele_caption la réponse d'un utilisateur (uid) à la question (ele_value) n° 001
    juste une petite indiquation pour que j'avance dans la connaissance

    merci aussi à Sivrît, mais j'ai pas tout compris à l'idée émise ...

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    bonsoir
    J'approche du but, mais j'ai encore une erreur de débutant
    que je n'arrive pas à trouver :
    Erreur

    requête SQL :

    SELECT `uid` , `ele_caption` , `ele_value`
    FROM `xoops_form_form`
    WHERE `id_form` != 21 AND `ele_caption` != '{null}' AND `ele_caption` = 001 AND `uid` != 0
    GROUP BY `uid`
    UNION
    SELECT `uid` , `ele_caption` , `ele_value`
    FROM `xoops_form_form`
    WHERE `id_form` != 21 AND `ele_caption` != '{null}' AND `ele_caption` = 002 AND `uid` != 0
    GROUP BY `uid`
    LIMIT 0 , 30

    MySQL a répondu:

    You have an error in your SQL syntax near 'UNION SELECT `uid` , `ele_caption` , `ele_value` FROM `xoops_form_form` W' at line 1
    je ne vois pas ce que le "w" vient faire là ?
    à priori c'est le UNION qui pose pb ?
    cordialement

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Pour info, je viens de voir que UNION n'est pris en compte qu'à partir de Mysql 4.0.0 or sur mon hébergement OVH, la version de mysql est la 3.23.58

  7. #7
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Raison de plus pour gérer cette mise en forme dans ton appli plutôt qu'avec du SQL coûteux et inapproprié...

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

Discussions similaires

  1. Récupération de données de mails et mise en forme des données récupérées
    Par ElPibeOro dans le forum Shell et commandes POSIX
    Réponses: 15
    Dernier message: 08/07/2014, 15h46
  2. Mise en forme des cellules d'une flexgrid
    Par ecarbill dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 30/08/2006, 10h57
  3. Forcer la mise en forme des champs d'une TABLE
    Par dunbar dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 11/08/2006, 01h07
  4. Réponses: 2
    Dernier message: 11/07/2006, 17h08
  5. Réponses: 1
    Dernier message: 14/09/2005, 11h01

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