Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Shop Recherche
1529 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problème avec un questionnaire

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème avec un questionnaire

n°383305
ksandre
Posté le 05-05-2003 à 19:47:13  profilanswer
 

Bonjour,
 
voilà, j'ai un questionnaire à créer mais j'ai quelques soucis :  
- je n'arrive pas à mettre au point ma base de données parce qu'il y a tout type de questions qui appellent des réponses variées : checkbox, bouton radio, champ texte avec parfois pour chaque question 2 voire 15 réponses possibles. Comment faut-il que je crée ma base, combien de tables ? Sachant que j'ai une bonne dizaine de questions.
- mon second souci, c'est justement, par la suite, pour récupérer le plus simplement les réponses qui s'ajouteront dans la base à partir du formulaire en ligne
 
Merci beaucoup de votre aide car je commence à m'arracher les cheveux.

mood
Publicité
Posté le 05-05-2003 à 19:47:13  profilanswer
 

n°383360
simogeo
j'ai jamais tué de chats, ...
Posté le 05-05-2003 à 20:44:10  profilanswer
 

il faudrait que tu nous donnes plus de precisions et que tu te renseignes sur les structures de bdd ?
c'est ta première conception ?
du reste, il faut que tu fragmentes l'information au maximum pour la stocké aisement dans ta bdd et determiner plus facilement le type d'info.
 
par exemple, pour une adresse > tu peux créer un champs txt ou varachar(255) qui va recuiellir :
 
25, rue des brouettes
Appt 38, Batiment PHP
85620 TROUDUKUDUMONDE
 
mais tu peux aussi faire  un champs pour chaque info dans le cas ou tu dois exercer des controles de validité sur l'info :
- numerorue : 25
- rue : des brouettes
- appt : 38
- batiment : PHP
- codepostal : 85620  
- ville : TROUDUKUDUMONDE
 
voilà ... une petite contribution. ca pourrait durer des heures mais j'ai des choses a faire alors j'invite tout le monde a t'en verser un peu  [:spamafote]  
 


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°383395
ksandre
Posté le 05-05-2003 à 21:09:38  profilanswer
 

Merci pour ta réponse. En fait, pour essayer d'être plus claire, j'ai 15 questions : 7 avec des réponses possibles par bouton radio, 5 qui proposent un choix multiple par checkbox et 3 qui sont des questions ouvertes qui doivent permettre à l'internaute d'écrire directemnt dans un champ texte. Je dois constituer une base qui va me permettre de récupérer toutes les réponses de mon questionnaire. C'est le fait qu'il y ait des check box qui me gêne, je ne vois pas comment structurer ma base, la ou les tables.

n°383412
nico168
Posté le 05-05-2003 à 21:26:47  profilanswer
 

ben si ta BDD gere les boolean, tu peux creer un champs boolean pour stocker l'etat des checkbox (true = coché par exemple)
sinon un champ texte d'un caractere (1 = coché par exemple)

n°383413
ksandre
Posté le 05-05-2003 à 21:28:37  profilanswer
 

D'accord mais au final, il faut que je crée une ou plusieurs tables ? Quels seront les champs par exemple ?

n°383415
nico168
Posté le 05-05-2003 à 21:30:06  profilanswer
 

d'apres se que j'ai compris, tu ne devrais faire qu'une table avec autant de champs que tu as besoin pour stocker toute les infos pour un formulaire.

n°383418
ksandre
Posté le 05-05-2003 à 21:34:15  profilanswer
 

Donc ça va me faire une table avec environ presque une centaine de champs ! Sans compter tout ce qu'il faudra écrire dans le script pour ajouter chaque réponse dans les champs de la table correspondants !

n°383422
nico168
Posté le 05-05-2003 à 21:40:51  profilanswer
 

ha oui... 100 champs, ca fait peut etre beaucoup, y'a un pb.
peut etre peux tu regrouper tes questoin par type :
- type champs libre
- type radiobutton
- type checkbox
 
et creer une table par type avec un champs qui identifit la question.
 
sinon, 100 champs...pourquoi pas... apres tout une base de donnée c'est fait pour supporter de gros volumes de données. et ca te simplifiera la tache.
t'as un exemple du formulaire en ligne ? ca pourrait aider

n°383436
ksandre
Posté le 05-05-2003 à 22:00:45  profilanswer
 

Je n'ai pas le modèle définitif mais pour se faire une idée de la structure du formulaire, il devra être de ce type là :
- http://membres.lycos.fr/neziak/test/test.php
 

n°383469
nico168
Posté le 05-05-2003 à 22:49:54  profilanswer
 

avec ce formulaire, je ferais comme ca :
 
2 champs numerique pour les questions 1 et 2 avec stocké le numero de la question repondu.
2 champs texte pour les questions 3 et 4, pour y concatenné les reponses cochées.
2 champs texte pour les questions 5 et 6
 
1 champs numerique pour stocker l'id de la personne interrogé
 
c'est avec ce formulaire la que tu avais compté 100 champs ?


Message édité par nico168 le 05-05-2003 à 22:51:15
mood
Publicité
Posté le 05-05-2003 à 22:49:54  profilanswer
 

n°383483
spoon25
Posté le 05-05-2003 à 23:00:22  profilanswer
 

Pour ce formulaire (http://membres.lycos.fr/neziak/test/test.php) ta table est assez simple.
Question 5 et 6: un champ varchar(255) ou text (si nécessaire longtext, ?)
Question 1 et 2: un champ varchar(1) ou tu met le numéro de la case cochée
Question 3 et 4: un champ varchar(x) ou tu mets le numéro des cases cochées séparé par , ou ? ou ?. (ex: 1-2-3)
Quand tu lit la valeur avec une query tu travail sur la réponse en lisant les numéros et on oubliant le séparateur (, ou ? ou ?.).
 
Ça peut paraître peu optimal mes c'est mieux qu'une table de 100 (voir +)champs.


Message édité par spoon25 le 05-05-2003 à 23:00:48
n°383530
ksandre
Posté le 05-05-2003 à 23:12:58  profilanswer
 

Merci, je vais voir tout ça. Non ce n'est pas avec ce script bien sûr que je vais avoir 100 champs, c'était juste un modèle.

n°383652
ksandre
Posté le 06-05-2003 à 07:07:14  profilanswer
 

Je ne trouve nulle part de tut concernant l'ajout des champs d'un formulaire de type bouton radio et check box dans une base nulle part, quelqu'un pourrait-il m'éclairer sur la façon de procéder? On trouve partout des exemples de formulaire de base (nom, prenom etc.) mais pas de type questionnaire.

n°383655
simogeo
j'ai jamais tué de chats, ...
Posté le 06-05-2003 à 07:35:59  profilanswer
 

plusieurs facon de proceder :
 
si ton radio est  
 

Code :
  1. <input type="radio" name="nb_de_lapins" value=1 />
  2. <input type="radio" name="nb_de_lapins" value=2 />
  3. <input type="radio" name="nb_de_lapins" value=3 />
  4. <input type="radio" name="nb_de_lapins" value=4 />
  5. prevoit un champs nb_lapins de type Enum('1','2','3','4') par exemple
  6. - ce qui signifie que la valeur stocké sera 1,2,3,4
  7. // !!! : attention enum() est typique à mysql il me semble


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°383668
smilm
Posté le 06-05-2003 à 08:01:21  profilanswer
 

simogeo a écrit :

plusieurs facon de proceder :
 
si ton radio est  
 

Code :
  1. <input type="radio" name="nb_de_lapins" value=1 />
  2. <input type="radio" name="nb_de_lapins" value=2 />
  3. <input type="radio" name="nb_de_lapins" value=3 />
  4. <input type="radio" name="nb_de_lapins" value=4 />
  5. prevoit un champs nb_lapins de type Enum('1','2','3','4') par exemple
  6. - ce qui signifie que la valeur stocké sera 1,2,3,4
  7. // !!! : attention enum() est typique à mysql il me semble
  8. D'aprés le bookin, oui, enum, text, set ne sont pas a la norme SQL :)




---------------
AfterEnd: Batissez un nouveau monde
n°383673
simogeo
j'ai jamais tué de chats, ...
Posté le 06-05-2003 à 08:05:12  profilanswer
 

;)  c'est ce qu'il me semblait ... mais c'est pratique  :D


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°383679
ksandre
Posté le 06-05-2003 à 08:08:28  profilanswer
 

Par rapport au questionnaire d'exemple, j'ai crée la table suivante :
 
CREATE TABLE question  
(id INT not null AUTO_INCREMENT,  
quest1 VARCHAR (1) not null ,  
quest2 VARCHAR (1) not null ,  
quest3 VARCHAR (50) not null ,  
quest4 VARCHAR (50) not null ,  
quest5 VARCHAR (50) not null ,  
quest6 VARCHAR (50) not null ,  
PRIMARY KEY (id))  
 
Ma question est, comment écrire le script PHP pour récupérer et insérer les réponses dans les champs sachant donc qu'il y a ces checkbox et bouton radio.

n°384206
ksandre
Posté le 06-05-2003 à 13:06:44  profilanswer
 

J'arrive à rien, je désespère, en plus le formulaire du questionnaire doit être sur plusieurs pages. Quelqu'un peut-il venir à mon aide, s'il vous plaît !!! Je suis sur Paris, je peux même me déplacer pourvu qu'on m'explique !!! Merci !!! :-))

n°384227
simogeo
j'ai jamais tué de chats, ...
Posté le 06-05-2003 à 13:22:00  profilanswer
 

ben si tu viens a strasbourg je peux te donner un p'tit cours entre 19h et 20h  [:spamafote]  ( :whistle: )
 
du reste, ca serait vraiment cool que tu trouves kk'un parce que tu es très demandeur .... et c'est consommateur de bcp de temps pour les forumeurs  ;)


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°384264
nico168
Posté le 06-05-2003 à 13:40:51  profilanswer
 

ksandre a écrit :

J'arrive à rien, je désespère, en plus le formulaire du questionnaire doit être sur plusieurs pages.


 
c'est quoi ton pb ?
tu n'arrives pas a recuperer les données du formulaire ?
http://www.commentcamarche.com/php/phpform.php3
 
tu n'arrives pas a inserer ces données dans la table ?
http://www.commentcamarche.com/php/phpbdd.php3
 
soit plus precis sur tes problemes si tu veux qu'on puisse t'aider.
 

n°384377
ksandre
Posté le 06-05-2003 à 14:24:14  profilanswer
 

Je vais être plus précise (ben oui je suis une fille). Je veux insérer dans une table le résultat des réponses du questionnaire qui se trouve, pour l'exemple, à l'url que j'ai mentionnée au dessus. Sachant que les réponses se font soit par bouton radio, soit par check box.

n°384401
nico168
Posté le 06-05-2003 à 14:35:03  profilanswer
 

oui, la tu m'as repeté l'ennoncé du probleme, mais tu ne m'as pas dis ou tu en etais, et ou tu bloquais.
 
en html
1) faire le formulaire
 
en php
2) recuperer les données du formulaire
3) injecter ces données dans la table.
 
 

n°384402
ratibus
Posté le 06-05-2003 à 14:35:07  profilanswer
 

nico168 a écrit :


 
c'est quoi ton pb ?
tu n'arrives pas a recuperer les données du formulaire ?
http://www.commentcamarche.com/php/phpform.php3
 
tu n'arrives pas a inserer ces données dans la table ?
http://www.commentcamarche.com/php/phpbdd.php3
 
soit plus precis sur tes problemes si tu veux qu'on puisse t'aider.
 
 


+1

n°384405
ksandre
Posté le 06-05-2003 à 14:36:45  profilanswer
 

j'ai le formulaire en html mais maintenant je veux les injecter dans la base

n°384409
ksandre
Posté le 06-05-2003 à 14:37:46  profilanswer
 

Il faut que les réponses s'inscrivent directement dans la base quand l'utilisateur valide le formulaire

n°384413
ratibus
Posté le 06-05-2003 à 14:39:40  profilanswer
 

je te fais un script vite fait pour te montrer  
 
ta base est une base MySQL ?
tu sais programmer en PHP ?

n°384418
ksandre
Posté le 06-05-2003 à 14:42:12  profilanswer
 

oui c'est une base mysql et bof le php

n°384430
ratibus
Posté le 06-05-2003 à 14:47:52  profilanswer
 

voila une page php qui traite les resultats des ton formulaire
 

Code :
  1. <html>
  2. <head>
  3. <head>
  4. <body>
  5. <?php
  6. //Récuperation des données du formulaire
  7. $q1=$_POST['q1']
  8. $q2=$_POST['q2']
  9. $q3=$_POST['q3']
  10. $q4=$_POST['q4']
  11. $q5=$_POST['q5']
  12. $q6=$_POST['q6']
  13. // Déclaration des paramètres de connexion
  14. $host = la_machine; 
  15. // c'est-a-dire la machine sur laquelle le script est hébergé
  16. $user = votre_login;
  17. $bdd = Nom_de_la_base_de_donnees;
  18. $passwd  = Mot_de_passe;
  19. // Connexion au serveur
  20. mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur" );
  21. mysql_select_db($bdd) or die("erreur de connexion a la base de donnees" );
  22. // Creation et envoi de la requete
  23. $query = "INSERT INTO question (quest1,quest2,quest3,quest4,quest5,quest6) VALUES ($q1,$q2,$q3,$q4,$q5,$q6)";
  24. $result = mysql_query($query);
  25. // Deconnexion de la base de donnees
  26. mysql_close();
  27. ?>
  28. </body>
  29. </html>


 
C'est fait vite fait mais "normalement" ça marche  :D


Message édité par ratibus le 06-05-2003 à 14:49:01
n°384435
ksandre
Posté le 06-05-2003 à 14:49:42  profilanswer
 


Merci, je teste et je te dis ça

n°384441
ratibus
Posté le 06-05-2003 à 14:53:14  profilanswer
 

tu auras compris qu'il faut mettre les bonnes valeurs pour $user, $passwd et $bdd
 
faut ensuite que l'attribut action de ta balise form de ton forumulaire soit le nom de ta page php qui fait le traitement (ça peut être la meme bien sur mais le traitement est pas tout a fait pareil)

n°384458
ksandre
Posté le 06-05-2003 à 14:57:53  profilanswer
 

Comment je fais si mon formulaire doit tenir sur plusieurs pages avec des suivants ?

n°384465
ratibus
Posté le 06-05-2003 à 14:59:56  profilanswer
 

alors là ça se complique  :D  
parce que tu dois passer les réponses des pages précédentes à la page actuelle
 
c'est pas possible une page unique ?

n°384471
ratibus
Posté le 06-05-2003 à 15:03:12  profilanswer
 

le probleme qui va se poser c'est pour les checkbox car plusieurs réponses peuvent être sélectionnées pour une question

n°384484
ksandre
Posté le 06-05-2003 à 15:09:59  profilanswer
 

Et comment on fait dans ce cas là si je dois vraiment le faire sur trois pages ?

n°384519
nico168
Posté le 06-05-2003 à 15:26:32  profilanswer
 

dans ce cas, moi je ferais une table par page. donc fais le pour une page, et ca sera le meme principe pour les 2 autres.

n°384547
ratibus
Posté le 06-05-2003 à 15:40:09  profilanswer
 

nico168 a écrit :

dans ce cas, moi je ferais une table par page. donc fais le pour une page, et ca sera le meme principe pour les 2 autres.
 


sauf que ça permet aux utilisateurs de faire une seule page de questionnaire par exemple
 
s'il faut que toutes les questions aient une réponse c pas la bonne méthode de faire 3 tables

n°384555
nico168
Posté le 06-05-2003 à 15:42:30  profilanswer
 

ratibus a écrit :


sauf que ça permet aux utilisateurs de faire une seule page de questionnaire par exemple
 
s'il faut que toutes les questions aient une réponse c pas la bonne méthode de faire 3 tables


ben...lors du traitement du resultat, on peut supprimer les enregistrement des utilisateurs qui ne sont pas dans les 3 tables.


Message édité par nico168 le 06-05-2003 à 15:43:19
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problème avec un questionnaire

 

Sujets relatifs
probleme Apache/PHP[ Css ] pas de probleme sous Moz mais pb sous IE.... pourtant...
[C] j'ai un probleme pour écrire dans un fichier"Error 155" Problème.. au secours :-)
Problème d'accents et de couleurs[JS-HTML] Problème de variable...
Problème avec un KeyListenerprobleme de despecialisation
[JAVA] Socket UDP et InputStream, probleme de read[PHP-MYSQL] J'ai un problème que je n'arrive pas à résoudre SVP
Plus de sujets relatifs à : Problème avec un questionnaire


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR