array dans quizz
Posté : 12 nov. 2011, 22:12
Bonjour,
Je fait un petit quizz en php, mais j'ai des problèmes à afficer les réponses aléatoirement avec le rand().
Voici le script:
Dans mon sql j'ai :
id_quiz (l'id de chaque question)
question (la question)
reponse (la bonne réponse)
reponse_mauvaise1 (une mauvaise réponse)
reponse_mauvaise2 (une deuxieme mauvaise réponse)
explication (ca c'est ce qui va s'afficher quand je serais dans qcmreponse.php)
Vous voyez une erreure avec l'array?
Je fait un petit quizz en php, mais j'ai des problèmes à afficer les réponses aléatoirement avec le rand().
Voici le script:
<?php
$db = array();
$db['host'] = 'localhost';
$db['user'] = 'root'; // utilisateur
$db['pass'] = ''; //password
$db['base'] = 'techn2'; //nom de la base de donnee
if($_SERVER['SERVER_NAME'] != 'localhost'){
$db['host'] = 'xxxx';
$db['user'] = 'xxxx'; // utilisateur
$db['pass'] = 'xxxxx'; //password
$db['base'] = 'xxxx'; //nom de la base de donnee
}
function database_connect($db){
$link = mysql_connect($db['host'],$db['user'],$db['pass']);
if(!$link) die("erreur de connexion a la base de donnee".mysql_error());
if(!mysql_select_db($db['base'])) die ("selection de la vase impossible");
return $link;
}
function database_disconnect($link){
mysql_close($link);
}
$link = database_connect($db);
$sql = 'SELECT * FROM quiz';
$result = mysql_query($sql);
if(!$result){
die('erreur dans la requete : ' . mysql_error());
}
?> <form method="post" action="qcmreponse.php"> <?php
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
$id_quiz = $row['id_quiz'];
$question = $row['question'];
$reponse = $row['reponse'];
$reponse_mauvaise1 = $row['reponse_mauvaise1'];
$reponse_mauvaise2 = $row['reponse_mauvaise2'];
?>
<p>
<?php echo $question; ?> <?php echo $id_quiz; ?><br />
<?php
$reponses = array($reponse, $reponse_mauvaise1, $reponse_mauvaise2);
$resultat = array_rand($reponses, 3);
?>
<label><input type="radio" name="q<?php echo $id_quiz; ?>" value="<?php echo $reponses[$resultat[0]]; ?>" /> <?php echo $reponses[$resultat[0]]; ?></label><br />
<label><input type="radio" name="q<?php echo $id_quiz; ?>" value="<?php echo $reponses[$resultat[1]]; ?>" /> <?php echo $reponses[$resultat[1]]; ?></label><br />
<label><input type="radio" name="q<?php echo $id_quiz; ?>" value="<?php echo $reponses[$resultat[2]]; ?>" /> <?php echo $reponses[$resultat[2]]; ?></label><br />
</p>
<?php
}
?>
<input type="submit" value="Envoyer" />
</form>
Le problème c'est que <label><input type="radio" name="q<?php echo $id_quiz; ?>" value="<?php echo $reponses[$resultat[0]]; ?>" /> <?php echo $reponses[$resultat[0]]; ?></label><br />
<label><input type="radio" name="q<?php echo $id_quiz; ?>" value="<?php echo $reponses[$resultat[1]]; ?>" /> <?php echo $reponses[$resultat[1]]; ?></label><br />
<label><input type="radio" name="q<?php echo $id_quiz; ?>" value="<?php echo $reponses[$resultat[2]]; ?>" /> <?php echo $reponses[$resultat[2]]; ?></label><br />
ne s'affiche pas aléatoirement, mais en ordre.Dans mon sql j'ai :
id_quiz (l'id de chaque question)
question (la question)
reponse (la bonne réponse)
reponse_mauvaise1 (une mauvaise réponse)
reponse_mauvaise2 (une deuxieme mauvaise réponse)
explication (ca c'est ce qui va s'afficher quand je serais dans qcmreponse.php)
Vous voyez une erreure avec l'array?