par
Invité » 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:
<?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?