Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/09/2011, 19h59   #1
Invité de passage
 
Inscription : juin 2011
Messages : 28
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 28
Points : 4
Points : 4
Par défaut Créer un questionnaire aléatoire

Bonsoir,

Je suis en train de créer un espace membre pour mon site.
Lors de l'inscription, j'aimerais mettre un questionnaire que le membre devra remplir.
J'aimerais que les questions aux nombres de 10 soient aléatoires, que sa soit pas toujours les mêmes.

J'aimerais avoir vos méthodes pour cela .

Merci beaucoup de vos aides.

Amicalement,
DexX
DexX39800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 20h13   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 123
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 123
Points : 8 475
Points : 8 475
elles sortent d’où les questions ?
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 21h07   #3
Invité de passage
 
Inscription : juin 2011
Messages : 28
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 28
Points : 4
Points : 4
Bonsoir,

Ben c'est moi qui va les créer en fonction de la charte de mon site.
DexX39800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 21h08   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 123
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 123
Points : 8 475
Points : 8 475
Citation:
Envoyé par DexX39800 Voir le message
Bonsoir,

Ben c'est moi qui va les créer en fonction de la charte de mon site.
je sais bien, mais elles sont stockées ou ?
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 21h18   #5
Invité de passage
 
Inscription : juin 2011
Messages : 28
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 28
Points : 4
Points : 4
Non mais j'ai rien commencé encore ...

Je pensais stocker mes questions dans un tableau non ?
DexX39800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 21h20   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 123
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 123
Points : 8 475
Points : 8 475
comme tu veux, si dans un tableau, ça sera shuffle + array_slice
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 21h23   #7
Invité de passage
 
Inscription : juin 2011
Messages : 28
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 28
Points : 4
Points : 4
J'ai essayé ça :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/*QCM CHARTE*/
$questions = Array();
$questions[] = Array('A qui appartient ce site ?', 'Son créateur', 'Vous', 'L\'hébergeur web du site', 'À personne', 'Je ne sais pas', 1);
$questions[] = Array('Que faut-il faire avant de poser une question sur les forums ?', 'Rien', 'Demander à son voisin s\'il a la réponse', 'Une recherche sur le site', 'Consulter Google', 'Je ne sais pas', 3);
$questions[] = Array('Vous pouvez supprimer votre compte...', 'quand vous voulez', 'quand vous voulez en le demandant à un administrateur', 'seulement le mardi', 'seulement si vous ne respectez pas le règlement', 'Je ne sais pas', 2);
$questions[] = Array('Quel titre de sujet convient ?', 'PC en carton plante tout le temps', 'Grrrrrrrrr!!!! Quelqu\'un a un marteau ?', 'A l\'aiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiide !!', '[Windows] Plantage système au démarrage', 'Je ne sais pas', 4);
$questions[] = Array('Qui surveille les forums ?', 'L\'équipe de modération', 'Les administrateurs', 'L\'hébergeur web du site', 'Il se surveille tout seul', 'Je ne sais pas', 1);
$questions[] = Array('Quel sujet n\'est pas légal ?', '[SONDAGE] Vous lavez-vous souvent les cheveux ?', '[HOTMAIL] Contourner le filtre anti-spam', 'La nouvelle loi Hadopi, la fin du P2P en France ?', 'Topic flood !', 'Je ne sais pas', 2);
$questions[] = Array('Si quelqu\'un vous demande votre mot de passe...', 'il n\'est pas membre de l\'équipe du site', 'c\'est qu\'il est curieux', 'vous lui donnez', 'vous lui demandez le sien en échange', 'Je ne sais pas', 1);
$questions[] = Array('Quel langage est interdit sur ce site ?', 'L\'anglais', 'L\'allemand', 'Le braille', 'Le SMS', 'Je ne sais pas', 4);
$questions[] = Array('En vous inscrivant vous reconnaissez', 'être fan du site', 'aimer le chocolat', 'avoir accepté la charte', 'être bête', 'Je ne sais pas', 3);
$Tquestions = count($questions);
?>
<?php
$locate = Array();
$i=1;
 
while($i<=3)
{
	$k = $questions[mt_rand(0,$Tquestions-1)];
	while(in_array($k, $locate))
	{
		$k = $questions[mt_rand(0,$Tquestions-1)];
	}
	$locate[] = $k;
	$i++;
}
?>
<!--Affichage-->
<?php
$i=1;
while($i<=3)
{
	$_SESSION['reponse'.$i] = $locate[$i-1][6];
?>
						Question :<span class="question"><?php echo $locate[$i-1][0]; ?></span><br/><br/>
						<input type="radio" name="reponse<?php echo $i; ?>" value="1" id="<?php echo $i; ?>1" /> <label for="<?php echo $i; ?>1"><?php echo $locate[$i-1][1]; ?></label><br />
						<input type="radio" name="reponse<?php echo $i; ?>" value="2" id="<?php echo $i; ?>2" /> <label for="<?php echo $i; ?>2"><?php echo $locate[$i-1][2]; ?></label><br />
						<input type="radio" name="reponse<?php echo $i; ?>" value="3" id="<?php echo $i; ?>3" /> <label for="<?php echo $i; ?>3"><?php echo $locate[$i-1][3]; ?></label><br />
						<input type="radio" name="reponse<?php echo $i; ?>" value="4" id="<?php echo $i; ?>4" /> <label for="<?php echo $i; ?>4"><?php echo $locate[$i-1][4]; ?></label><br />
						<input type="radio" name="reponse<?php echo $i; ?>" value="5" id="<?php echo $i; ?>5" /> <label for="<?php echo $i; ?>5"><?php echo $locate[$i-1][5]; ?></label><br /><br/>
<?php
	$i++;
}
?>
Cela fonctionne mais si je met 10 questions sa va me mettre une erreur MySQL comme quoi je dépasse les 30 secondes de chargements..
DexX39800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 21h33   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 123
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 123
Points : 8 475
Points : 8 475
erreur MySQL ? y'a pas de MySQL dans ton code

si je te donne une réponse c'est pas pour rien, t'as ni utiliser array_slice ni shuffle ...
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 21h42   #9
Invité de passage
 
Inscription : juin 2011
Messages : 28
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 28
Points : 4
Points : 4
Code :
Fatal error: Maximum execution time of 40 seconds exceeded
DexX39800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 21h58   #10
Modérateur
 
Inscription : septembre 2010
Messages : 7 123
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 123
Points : 8 475
Points : 8 475
Citation:
Envoyé par DexX39800 Voir le message
Code :
Fatal error: Maximum execution time of 40 seconds exceeded
oui et ?
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 22h06   #11
Invité de passage
 
Inscription : juin 2011
Messages : 28
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 28
Points : 4
Points : 4
Ben comment ça se fait que sa me ça dès que j'augmente le nombre de question de 3 à 10 ?
DexX39800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 22h17   #12
Modérateur
 
Inscription : septembre 2010
Messages : 7 123
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 123
Points : 8 475
Points : 8 475
Citation:
Envoyé par DexX39800 Voir le message
Ben comment ça se fait que sa me ça dès que j'augmente le nombre de question de 3 à 10 ?
boucle infinie, mais t'as toujours pas fait que j'ai dis ...
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 23h04   #13
Invité de passage
 
Inscription : juin 2011
Messages : 28
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 28
Points : 4
Points : 4
Boucle infinie ?

Désolé ... j'aimerais faire marché celui-ci
DexX39800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 01h24   #14
Modérateur
 
Inscription : septembre 2010
Messages : 7 123
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 123
Points : 8 475
Points : 8 475
Citation:
Envoyé par DexX39800 Voir le message
Boucle infinie ?

Désolé ... j'aimerais faire marché celui-ci
je te donne 2 fonctions pour faire ce que tu veux rapidement et simplement pourquoi vouloir absolument faire avec ce code ?
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 19h27   #15
Invité de passage
 
Inscription : juin 2011
Messages : 28
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 28
Points : 4
Points : 4
Pourrais-tu me donner un exemple par rapport à mon contexte s'il te plait ?
DexX39800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 09h20   #16
Modérateur
 
Inscription : septembre 2010
Messages : 7 123
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 123
Points : 8 475
Points : 8 475
Citation:
Envoyé par DexX39800 Voir le message
Pourrais-tu me donner un exemple par rapport à mon contexte s'il te plait ?
shuffle mélange et array_slice découpe, va voir la doc des deux fonctions en 2 lignes de code c'est fait

je te conseil d'apprendre les bases de PHP avant de te lancer dans un projet
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 18h45   #17
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur Web
Inscription : décembre 2006
Messages : 2 335
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 2 335
Points : 3 774
Points : 3 774
Citation:
Envoyé par stealth35 Voir le message
shuffle mélange et array_slice découpe, va voir la doc des deux fonctions en 2 lignes de code c'est fait
En résumé ça fait :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
<?php
/*QCM CHARTE*/
$questions = Array();
$questions[] = Array('A qui appartient ce site ?', 'Son créateur', 'Vous', 'L\'hébergeur web du site', 'À personne', 'Je ne sais pas', 1);
$questions[] = Array('Que faut-il faire avant de poser une question sur les forums ?', 'Rien', 'Demander à son voisin s\'il a la réponse', 'Une recherche sur le site', 'Consulter Google', 'Je ne sais pas', 3);
$questions[] = Array('Vous pouvez supprimer votre compte...', 'quand vous voulez', 'quand vous voulez en le demandant à un administrateur', 'seulement le mardi', 'seulement si vous ne respectez pas le règlement', 'Je ne sais pas', 2);
$questions[] = Array('Quel titre de sujet convient ?', 'PC en carton plante tout le temps', 'Grrrrrrrrr!!!! Quelqu\'un a un marteau ?', 'A l\'aiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiide !!', '[Windows] Plantage système au démarrage', 'Je ne sais pas', 4);
$questions[] = Array('Qui surveille les forums ?', 'L\'équipe de modération', 'Les administrateurs', 'L\'hébergeur web du site', 'Il se surveille tout seul', 'Je ne sais pas', 1);
$questions[] = Array('Quel sujet n\'est pas légal ?', '[SONDAGE] Vous lavez-vous souvent les cheveux ?', '[HOTMAIL] Contourner le filtre anti-spam', 'La nouvelle loi Hadopi, la fin du P2P en France ?', 'Topic flood !', 'Je ne sais pas', 2);
$questions[] = Array('Si quelqu\'un vous demande votre mot de passe...', 'il n\'est pas membre de l\'équipe du site', 'c\'est qu\'il est curieux', 'vous lui donnez', 'vous lui demandez le sien en échange', 'Je ne sais pas', 1);
$questions[] = Array('Quel langage est interdit sur ce site ?', 'L\'anglais', 'L\'allemand', 'Le braille', 'Le SMS', 'Je ne sais pas', 4);
$questions[] = Array('En vous inscrivant vous reconnaissez', 'être fan du site', 'aimer le chocolat', 'avoir accepté la charte', 'être bête', 'Je ne sais pas', 3);
 
//Mélange des éléments
shuffle( $questions );
 
//Prendre les 5 premiers éléments 
$questionsUser = array_slice( $questions, 0, 5 );
?>
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 01/10/2011, 15h35   #18
Invité de passage
 
Inscription : juin 2011
Messages : 28
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 28
Points : 4
Points : 4
Bonjour,

Merci beaucoup de l'astuce mais ensuite pour afficher les questions et les réponses, je dois faire un echo de quoi ?
DexX39800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/10/2011, 15h53   #19
Modérateur
 
Inscription : septembre 2010
Messages : 7 123
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 123
Points : 8 475
Points : 8 475
Citation:
Envoyé par DexX39800 Voir le message
Bonjour,

Merci beaucoup de l'astuce mais ensuite pour afficher les questions et les réponses, je dois faire un echo de quoi ?
de ta nouvelle liste
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/10/2011, 16h18   #20
Invité de passage
 
Inscription : juin 2011
Messages : 28
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 28
Points : 4
Points : 4
D'accord donc je fais :

Oh niveau du test des réponses, c'est la même manipulation que ce que j'ai actuellement ?
DexX39800 est déconnecté   Envoyer un message privé Réponse avec citation 01
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h30.


 
 
 
 
Partenaires

Hébergement Web