Problème avec un questionnaire - PHP - Programmation
Marsh Posté le 05-05-2003 à 20:44:10
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
Marsh Posté le 05-05-2003 à 21:09:38
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.
Marsh Posté le 05-05-2003 à 21:26:47
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)
Marsh Posté le 05-05-2003 à 21:28:37
D'accord mais au final, il faut que je crée une ou plusieurs tables ? Quels seront les champs par exemple ?
Marsh Posté le 05-05-2003 à 21:30:06
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.
Marsh Posté le 05-05-2003 à 21:34:15
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 !
Marsh Posté le 05-05-2003 à 21:40:51
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
Marsh Posté le 05-05-2003 à 22:00:45
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
Marsh Posté le 05-05-2003 à 22:49:54
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 ?
Marsh Posté le 05-05-2003 à 23:00:22
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.
Marsh Posté le 05-05-2003 à 23:12:58
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.
Marsh Posté le 06-05-2003 à 07:07:14
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.
Marsh Posté le 06-05-2003 à 07:35:59
plusieurs facon de proceder :
si ton radio est
Code :
|
Marsh Posté le 06-05-2003 à 08:01:21
simogeo a écrit : plusieurs facon de proceder :
|
Marsh Posté le 06-05-2003 à 08:05:12
c'est ce qu'il me semblait ... mais c'est pratique
Marsh Posté le 06-05-2003 à 08:08:28
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.
Marsh Posté le 06-05-2003 à 13:06:44
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 !!! :-))
Marsh Posté le 06-05-2003 à 13:22:00
ben si tu viens a strasbourg je peux te donner un p'tit cours entre 19h et 20h ( )
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
Marsh Posté le 06-05-2003 à 13:40:51
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.
Marsh Posté le 06-05-2003 à 14:24:14
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.
Marsh Posté le 06-05-2003 à 14:35:03
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.
Marsh Posté le 06-05-2003 à 14:35:07
nico168 a écrit : |
+1
Marsh Posté le 06-05-2003 à 14:36:45
j'ai le formulaire en html mais maintenant je veux les injecter dans la base
Marsh Posté le 06-05-2003 à 14:37:46
Il faut que les réponses s'inscrivent directement dans la base quand l'utilisateur valide le formulaire
Marsh Posté le 06-05-2003 à 14:39:40
je te fais un script vite fait pour te montrer
ta base est une base MySQL ?
tu sais programmer en PHP ?
Marsh Posté le 06-05-2003 à 14:47:52
voila une page php qui traite les resultats des ton formulaire
Code :
|
C'est fait vite fait mais "normalement" ça marche
Marsh Posté le 06-05-2003 à 14:53:14
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)
Marsh Posté le 06-05-2003 à 14:57:53
Comment je fais si mon formulaire doit tenir sur plusieurs pages avec des suivants ?
Marsh Posté le 06-05-2003 à 14:59:56
alors là ça se complique
parce que tu dois passer les réponses des pages précédentes à la page actuelle
c'est pas possible une page unique ?
Marsh Posté le 06-05-2003 à 15:03:12
le probleme qui va se poser c'est pour les checkbox car plusieurs réponses peuvent être sélectionnées pour une question
Marsh Posté le 06-05-2003 à 15:09:59
Et comment on fait dans ce cas là si je dois vraiment le faire sur trois pages ?
Marsh Posté le 06-05-2003 à 15:26:32
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.
Marsh Posté le 06-05-2003 à 15:40:09
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
Marsh Posté le 06-05-2003 à 15:42:30
ratibus a écrit : |
ben...lors du traitement du resultat, on peut supprimer les enregistrement des utilisateurs qui ne sont pas dans les 3 tables.
Marsh Posté le 05-05-2003 à 19:47:13
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.