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

Requêtes MySQL Discussion :

Contruire une enquete


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut Contruire une enquete
    Bonjour,

    je dois creer une enquete en PHP/MySQL mais je ne sais trop comment m'y prendre!!

    j'aurais des questions de tout types, par ex. :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    1- quel produit vous interesse ?
     <input type="radio" ...> table
     <input type="radio" ...> chaise
     Autres <input type="text" ...>
     
    2- quelle bouffe vous interesse ?
                      beaucoup  | un peu  | pas du tout
    -------------------------------------------------
    choix 1       |       O     |    O    |    O
    -------------------------------------------------
    choix 2       |       O     |    O    |    O
    -------------------------------------------------
    choix 3       |       O     |    O    |    O
    la mise en page n'est pas le probleme, j'aimerai savoir quel est le meilleur moyen de stocker les reponses...

    Merci de votre aide

  2. #2
    Expert confirmé

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Points : 4 324
    Points
    4 324
    Par défaut
    Bonjour,

    As tu fait une liste des formes de questions possibles ?

    Pour le moment sans précision il est difficile d'apporter une solution, cependant à première vue, je pense que l'héritage serait très utile
    http://alaindefrance.wordpress.com
    Certifications : SCJP6 - SCWCD5 - SCBCD5 - SCMAD1
    SDE at BitTitan

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    Bonsoir et merci pour ta reponse.

    c'est a peu pres en gros les 2 formes de questions que je vais avoir :
    le choix entre plusieurs valeurs (input radio), ou sinon choisir "Autres" et donner a l'internaute la possibilite de saisir ce qu'il veut.

    2e type de questions : choisir entre plusieurs options (bien, moyen, faible) pour chaque question comme mon exemple l'indique...

    Merci de ton aide

  4. #4
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    Peut-être que des colonnes de type ENUM sont adaptées à certaines questions mais pas, ou moins, à d'autres.
    Méthodologiquement, tu devrais regarder le problème sous, au minimum, deux angles (ou deux vues au sens MERISE).
    La saisie et l'exploitation de l'enquête.
    De l'extérieur tous les conseils qu'on pourra te donner avec si peu d'éléments me semblent au mieux vains, au pire prétentieux.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    Bonjour,

    je suis entrain de penser a qlq chose du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    table enquetes:
    id_enquete // identifiant de l'enquete
    descriptif  // descriptif a afficher au debut de l'enquete 
    dt  // date de mise en place
     
    table enquetes_questions:
    id_question  // id de la question
    id_enquete  // id enquete
    question (varchar 255)  // question
     
    table enquetes_choix
    id_choix
    id_question
    choix
     
    table enquetes_reponses
    id_choix
    reponse
    pour une enquete du genre:

    Afin d'ameliorer blablablabla (le descriptif)

    Question 1
    choix 1
    choix 2
    ...

  6. #6
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    A priori il te manque des infos dans la table enquetes_reponses
    Comment gères-tu la multiplicité des réponses ?
    La cohorte de l'enquête, en l'état, s'arrêterait au premier questionnaire.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par Maljuna Kris Voir le message
    Comment gères-tu la multiplicité des réponses ?
    dans le cas où j'ai plusieurs reponses pour une question, j'aurais ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    table enquetes_reponses (id_choix, reponse)
    1, reponse blabla
    2, reponse blablablaa
    ...
    sachant que id_choix 1 et 2 font partie de la question numero 3 pzr exemple, cela me permettrai de connaitre le nombre de reponses...

    ou sinon je modifie la table enquetes_reponses :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    table enquetes_reponses (id_question, id_choix, reponse)
    ??

  8. #8
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    J'ai dû mal m'exprimer.
    Une enquête, c'est destiné à recueillir l'avis d'un certain nombre de personnes, ce qu'on appelle parfois une cohorte.
    Or, la question que je te pose est la suivante, si plusieurs personnes apportent la même réponse à une question, comment distingueras-tu ces diverses réponses équivalentes dans la table enquetes_reponses ?
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    au fait dans la table enquetes_reponses, j'aurai un enregistrement par reponse ; si donc il y a 13 reponses a la question numero 5, j'aurais ceci:

    enquetes_reponses (id_choix, reponse)
    3, reponse 1
    3, reponse 2
    3, reponse 1
    3, reponse 4
    3, reponse 1
    3, reponse 2
    ...

    je ne sais par contre pas si je dois rajouter l'identifiant de la question a la table enquetes_reponses!!

    j'espere etre clair

  10. #10
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Je te mets en garde contre l'entropie que génère ton projet de tables.
    Tu perds le lien entre qui a dit quoi à propos de quoi.
    Si on te demande combien de filles ont répondu 1 à la question 12, comment construiras-tu la requête ?
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    c'est vrai, j'avoue qu'il y a qlq chose qui ne va pas dans ma structure
    quelle structure me recommandes tu?

    voici une petite partie de l'enquete qui doit etre faite: http://www.iifiir.org/fr/survey.php?id=1

  12. #12
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Je verrai bien au moins 4 tables (peut-être une 5° pour les groupes de questions):
    questions {id, groupe, rang, libellé}
    choix{question, id, valeur} question foreign_key id de question
    participants{id, sexe, date_naissance, csp, nationalité,...}
    reponses{question,participant, reponse} question foreign_key id de question participant foreign key id de participants
    Ce qui ménage la possibilité de réponses non proposées par un choix. Je n'ai pas fermé les colonnes de participants car tout dépend de ce que l'on veut tirer comme enseignements de cette enquête.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    Bonjour, j'espere que tu as passe un bon week end

    ce que tu m'as propose est un peu ce que j'avais propose non??
    j'ai repris ta structure et je me demande juste a quoi devrais je lier la table reponses, à la table questions ou choix???? sachant qu'un choix peut avoir 3 choix comme le montre le formulaire.
    une question est le texte bleu
    les choix sont les differentes propositions.

    j'ai un autre cas qui me complique les choses : je peux avoir une sous question, ex. :

    Comment souhaitez-vous pouvoir disposer de ces informations ? (question)
    Préférez-vous disposer de ces informations (sous question 1)
    dans votre boite e-mail ? (choix 1)
    en vous connectant sur le site Web de l’IIF ? (choix 2)

    Préférez-vous recevoir des informations (sous question 2)
    dans tous les domaines du froid ? (choix 1)
    personnalisées en fonction des domaines ou des types d’informations qui vous intéressent ? (choix 2)

    Merci encore une fois

  14. #14
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Citation Envoyé par redah75 Voir le message
    ce que tu m'as propose est un peu ce que j'avais propose non??
    Je ne crois pas, non.
    Citation Envoyé par redah75 Voir le message
    j'ai repris ta structure et je me demande juste a quoi devrais je lier la table reponses, à la table questions ou choix???? sachant qu'un choix peut avoir 3 choix comme le montre le formulaire.
    A la table question, évidemment, la table choix ne sert qu'à proposer les choix pour chaque question. Le traitement de l'enquête se fait entre les questions les réponses et les participants.
    Citation Envoyé par redah75 Voir le message
    j'ai un autre cas qui me complique les choses : je peux avoir une sous question, ex. :

    Comment souhaitez-vous pouvoir disposer de ces informations ? (question)
    Préférez-vous disposer de ces informations (sous question 1)
    dans votre boite e-mail ? (choix 1)
    en vous connectant sur le site Web de l’IIF ? (choix 2)

    Préférez-vous recevoir des informations (sous question 2)
    dans tous les domaines du froid ? (choix 1)
    personnalisées en fonction des domaines ou des types d’informations qui vous intéressent ? (choix 2)
    Es-tu sûr que cette sur-question en soit vraiment une ?
    Arrange-toi pour formuler ces deux dernières questions de façon légèrement différente et tout rentrera dans l'ordre.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    A la table question, évidemment, la table choix ne sert qu'à proposer les choix pour chaque question. Le traitement de l'enquête se fait entre les questions les réponses et les participants.
    ummmm, je ne sais pas si on parle de la meme chose
    pour se mettre d'accord, sur cette page : http://www.iifiir.org/fr/survey.php?id=1

    la 1ere question est : Quel(s) domaine(s) du froid vous intéresse(nt) ?
    le 1er choix est : Cryotechnique (cryogénie, supraconductivité,…) et traitement des gaz (liquéfaction et séparation des gaz)
    le 2e choix est : Cryobiologie, cryomédecine
    ...
    la reponde de CHAQUE choix est : "beacoup" ou "un peu" ou "pas du tout"

    c'est comme ca que tu voyais les choseS?

    Arrange-toi pour formuler ces deux dernières questions de façon légèrement différente et tout rentrera dans l'ordre.
    Oui, c'est ce que je me suis dit, il faudrait revoir un peux le questionnaire de manniere a rendre les choses plus simple!!

  16. #16
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Citation Envoyé par redah75 Voir le message
    la reponse de CHAQUE choix est : "beaucoup" ou "un peu" ou "pas du tout"
    Non, il s'agit de la réponse à la question, laquelle réponse est contrainte en saisie par le choix. On ne répond pas à un choix, on choisit une réponse à une question parmi un choix.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    d'accord! dans ce cas la, on considere qu'il y a plusieurs reponses differentes par question!!
    je regarderai ca demain et te tiendrai au courant

    Merci bp pour ton aide.

  18. #18
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Citation Envoyé par redah75 Voir le message
    d'accord! dans ce cas la, on considere qu'il y a plusieurs reponses differentes par question!!
    De toutes façons.
    Il y aura autant de réponses par questions que de participants. Sauf à considérer que des participants n'ont pas répondu à certaines questions du formulaire.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    Oh lalaaaaa, là je suis completement perdu!!!

    je reprends ta structure qui est la suivante :

    questions {id, libellé}
    choix {id_question, id, valeur}
    participants {id, nom, prenom, email, ...}
    reponses {id_question, id_participant, reponse}

    je prends un seul exemple :
    table questions :
    1 | Quel(s) domaine(s) du froid vous intéresse(nt) ?

    table choix:
    1 | 100 | Cryobiologie cryomédecine
    1 | 101 | Frigorigènes
    1 | 102 | Conditionnement d’air

    table reponses :
    1 | 10224 | quoi mettre ici????

    le "1" en orange, ne devrait pas etre plutot l'id du choix??? (100 ou 101...)

  20. #20
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Citation Envoyé par redah75 Voir le message
    table reponses :
    1 | 10224 | quoi mettre ici????

    le "1" en orange, ne devrait pas etre plutot l'id du choix??? (100 ou 101...)
    Bien sûr que non. Le 1 en orange représente la question, le 10224 le participant et après tu mets la réponse qu'a choisi le participant, ce qui peut être le numéro du choix coché, ou sa valeur, selon comment tu as codé le formulaire de saisie et le script d'exploitation du formulaire.
    Peut-être qu'il pourrait s'agir d'un champ ENUM, mais ça fermerait la possibilité de réponses hors des choix.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

Discussions similaires

  1. [SP-2010] Suppression globale des réponses d'une enquete
    Par JPF92 dans le forum SharePoint
    Réponses: 8
    Dernier message: 13/10/2011, 19h42
  2. [MCD] d'après une enquete sur l'échalote du Mali
    Par figarojuju dans le forum Schéma
    Réponses: 4
    Dernier message: 15/06/2010, 00h57
  3. Contruire une dll de dlls
    Par JeanJean159 dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 21/10/2008, 13h50
  4. Recuperer etape d'une enquete sharepoint
    Par han75 dans le forum SharePoint
    Réponses: 0
    Dernier message: 23/08/2007, 12h18
  5. récuperer la synthese graphique d'une enquete par code
    Par subtil311 dans le forum SharePoint
    Réponses: 0
    Dernier message: 01/08/2007, 15h21

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