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

PHP & Base de données Discussion :

Créer un questionnaire aléatoire


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 34
    Points : 19
    Points
    19
    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

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    elles sortent d’où les questions ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Bonsoir,

    Ben c'est moi qui va les créer en fonction de la charte de mon site.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    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 ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Non mais j'ai rien commencé encore ...

    Je pensais stocker mes questions dans un tableau non ?

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    comme tu veux, si dans un tableau, ça sera shuffle + array_slice

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    J'ai essayé ça :

    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
    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..

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    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 ...

  9. #9
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: Maximum execution time of 40 seconds exceeded

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par DexX39800 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: Maximum execution time of 40 seconds exceeded
    oui et ?

  11. #11
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Ben comment ça se fait que sa me ça dès que j'augmente le nombre de question de 3 à 10 ?

  12. #12
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    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 ...

  13. #13
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Boucle infinie ?

    Désolé ... j'aimerais faire marché celui-ci

  14. #14
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    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 ?

  15. #15
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Pourrais-tu me donner un exemple par rapport à mon contexte s'il te plait ?

  16. #16
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    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

  17. #17
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    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 : 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
    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

  18. #18
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    Merci beaucoup de l'astuce mais ensuite pour afficher les questions et les réponses, je dois faire un echo de quoi ?

  19. #19
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    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

  20. #20
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 34
    Points : 19
    Points
    19
    Par défaut
    D'accord donc je fais :

    Oh niveau du test des réponses, c'est la même manipulation que ce que j'ai actuellement ?

Discussions similaires

  1. Réponses: 12
    Dernier message: 25/05/2007, 16h28
  2. créer un questionnaire à partir de liste déroulante
    Par dudu134 dans le forum Langage
    Réponses: 31
    Dernier message: 27/04/2007, 11h57
  3. créer un fchier aléatoire avec un nom unique
    Par hansaplast dans le forum Langage
    Réponses: 2
    Dernier message: 20/10/2006, 15h37
  4. Créer un password aléatoire
    Par finalfx dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/10/2006, 09h37
  5. Créer un vecteur aléatoire
    Par Rafy dans le forum Algorithmes et structures de données
    Réponses: 49
    Dernier message: 06/07/2006, 18h19

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