Affichage de différents quiz

Fermé
missesmiss Messages postés 6 Date d'inscription lundi 11 janvier 2016 Statut Membre Dernière intervention 11 janvier 2016 - 11 janv. 2016 à 16:20
jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 - 11 janv. 2016 à 22:45
Bonjour,
Je suis débutante en php et comme je dois réaliser une application de quiz en ligne , je me suis bloquée.
Bon mon problème c'est que une fois j'affiche la liste des quiz à passer je ne sais pas comment me diriger vers le quiz choisi (sachant que j'ai une liste de quiz).
Comment retourner le quiz correspondant sachant que les questions et les réponses de chaque quiz doivent être extraites de ma base de données mySql.

Je vous serai reconnaissante si vous me donner un coup de main. Merci!!!
A voir également:

3 réponses

jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 4 649
11 janv. 2016 à 17:15
Bonjour,

En utilisant une varible GET peut être ?

Par exemple, en regard de chaque quizz (dans ta liste donc...) .. tu places un Lien qui pointe vers une page qui affichera le quizz selectionné.
Et dans l'url .. tu mets une variable GET qui sera, par exemple, l'ID du quizz en question.

echo "<a href=affichage_quizz.php?id_quizz=".$id_quizz.">Afficher le quizz</a>";



Dans la page qui effectuera l'affichage du quizz choisi, tu récupèreras donc l' ID passé en GET ...
$id = !empty($_GET['id_quizz']) ? $_GET['id_quizz'] : 0;


et tu t'en serviras dans ta requête de récupération des questions.
$sql = " SELECT *  FROM matable WHERE id = '$id' ";




0
missesmiss Messages postés 6 Date d'inscription lundi 11 janvier 2016 Statut Membre Dernière intervention 11 janvier 2016
11 janv. 2016 à 18:23
j'ai un petit problème avec la variable id , voilà ce qu'on m'affiche :
Parse error: syntax error, unexpected '$id' (T_VARIABLE)
0
jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 4 649
11 janv. 2016 à 20:46
Sans voir ton code... impossible de t'aider
0
missesmiss Messages postés 6 Date d'inscription lundi 11 janvier 2016 Statut Membre Dernière intervention 11 janvier 2016
11 janv. 2016 à 21:30
Voici le fichier select_quiz.php:

<?php require_once("essai_db.php"); ?>

<html>
<head>
  <meta charset="utf-8" >
  <meta name="viewport" content="width=device-width" />
  <title></title> 
</head>

<body>

<div>
<br><br><br><br><br><br><br>
  <h2>	Passez un quiz <br> </h2>  

<div style="padding-top:10px;" class="row">
    <div align="center">
	<form method="post" action="passer_q.php">
      <table border="4" width="88%">
     
			<tr>
			  
			    <td colspan="3"><h4>Choisir le quiz à passer</h4></td>
			</tr>
			<tr>
				   <th>Nom du quiz</th> 
			</tr>
			<tr>
					<td>  
						<?php 
							$sql  = 'SELECT Nom from quiz_e';
							$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
							
							While($data = mysql_fetch_array($req))
							{
						?>
							<p value = "<?php $data['Nom']; ?>"><a href="passer_q.php"><?php echo $data['Nom']; ?></a></p>
						
							<?php } ?>
										
							
					</td>
	
			</tr>
      </table>  
	</form>
    </div>

</div>

<hr style="margin: 100px 0 0px;" />


</body>
</html>
0
missesmiss Messages postés 6 Date d'inscription lundi 11 janvier 2016 Statut Membre Dernière intervention 11 janvier 2016 > missesmiss Messages postés 6 Date d'inscription lundi 11 janvier 2016 Statut Membre Dernière intervention 11 janvier 2016
11 janv. 2016 à 21:33
puis passer_q.php

<html>
<head>
  
</head>
<body>

<h2> 
<?php
require_once("essai_db.php");
$sql  = 'SELECT id_q_e from quiz_e';
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
While($data = mysql_fetch_array($req)){
					

			$sql1  = 'SELECT id_q from quiz where id_q = '.$data['id_q_e'];
			$req1 = mysql_query($sql1) or die('Erreur SQL !<br>'.$sql1.'<br>'.mysql_error());
			While($data1 = mysql_fetch_array($req1)){?>
</h2>				
<div>
<form method="post" action="confirm1.php">  
  <div class="questions">
    <strong><br><br>
			
	          <?php  	    $sql2 = 'SELECT id_Qu,Question from question ';
							$req2 = mysql_query($sql2) or die('Erreur SQL !<br>'.$sql2.'<br>'.mysql_error());
							
							While($data2 = mysql_fetch_array($req2))
							{
				?><br><br>
				<div><p value="<?php $data2['Question']; ?>" name="question"><b> <ol><li><?php echo $data2['Question']; ?></li></ol> </b></p>  
	</strong>
				<?php 			

								$sql3  = "SELECT Reponse from reponse where id_Qu= ".$data2['id_Qu']; 						
								$req3 = mysql_query($sql3) or die('Erreur SQL !<br>'.$sql3.'<br>'.mysql_error());		
								While($data3 = mysql_fetch_array($req3))
													{
														echo $data3['Reponse']; ?>
														<label><input name="active" type="checkbox" value="1"></label><br>
     
				</div>
												<?php	} ?>

							<?php	} ?> 

			<?php	} ?>


<?php	} ?>


</form>
</div>

</body>
</html>
0
missesmiss Messages postés 6 Date d'inscription lundi 11 janvier 2016 Statut Membre Dernière intervention 11 janvier 2016 > missesmiss Messages postés 6 Date d'inscription lundi 11 janvier 2016 Statut Membre Dernière intervention 11 janvier 2016
11 janv. 2016 à 21:35
et enfin quiz1.php qui est le premier quiz à afficher:

<!DOCTYPE html>
<!--[if lt IE 7]><html class="lt-ie9 lt-ie8 lt-ie7" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><![endif]-->
<!--[if IE 7]><html class="lt-ie9 lt-ie8" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><![endif]-->
<!--[if IE 8]><html class="lt-ie9" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><![endif]-->
<!--[if gt IE 8]><!--><html xmlns="http://www.w3.org/1999/xhtml"><!--<![endif]-->
<html>
<head>
 
  <title></title>

</head>
<body>
<h2>    <?php              require_once('essai_db.php');
							$sql  = 'SELECT Nom from quiz where id_q=1';
							$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
							
							While($data = mysql_fetch_array($req))
							{
		?>
							<p value="<?php $data['Nom']; ?>" name="nom_q"> <?php echo $data['Nom']; ?> </p>  
							
		<?php 				While(!empty($data['id_q'])) {
												
										      }
		?>
							
		<?php } ?>  
</h2>
<div>
<form method="post" action="confirm1.php">  
  <div class="questions">
    <strong><br><br><?php require_once('essai_db.php'); ?>

    <?php             	    $sql  = 'SELECT id_Qu,Question from question ';
							$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
							
							While($data = mysql_fetch_array($req))
							{
	?>
	<br><br>
	<div><p value="<?php $data['Question']; ?>"name="question"><b> <ol><li><?php echo $data['Question']; ?></li></ol> </b></p>  
	</strong>
		<?php 		$sql1  = "SELECT Reponse from reponse where id_Qu= ".$data['id_Qu']; 						
					$req1 = mysql_query($sql1) or die('Erreur SQL !<br>'.$sql1.'<br>'.mysql_error());		
					While($data1 = mysql_fetch_array($req1))
					{
	    ?>
		<?php  echo $data1['Reponse']; ?><label><input name="active" type="checkbox" value="1"></label><br>
     
  </div>
		<?php } ?>

		<?php } ?> 
		 
						<!--div>	<button type="submit" class="button small" width="600" onclick="myFunction()" id="submitLogin" > Submit</button></div-->
						<input type="submit" name="btn_news" value="Ok" class="button small"/>
</form>
</div>

</body>
</html>
0
missesmiss Messages postés 6 Date d'inscription lundi 11 janvier 2016 Statut Membre Dernière intervention 11 janvier 2016
11 janv. 2016 à 17:35
Merci jordane45 j'essaierai ça tout de suite !!
0
jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 4 649
11 janv. 2016 à 22:45
Oula..... alors par où commencer.... ?!!


1 - L'extension mysql que tu utilises est considérée comme obsolète !
Je t'invite à lire ceci : https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
Puis à passer à mysqli ou (de préférence...) à la PDO.

2 - Dans le code suivant:
<p value="<?php $data['Question']; ?>"name="question">

où as tu vu qu'une balise <p> avait des attributs NAME ou VALUE ???
De plus.... le code :
value="<?php $data['Question']; ?>

... sans ECHO ... ne sert à RIEN !


3 - Sais tu ce qu'est une variable GET et comment les utiliser ?
A voir la ligne de code
<p value = "<?php $data['Nom']; ?>"><a href="passer_q.php"><?php echo $data['Nom']; ?></a></p>

... j'en doute !
Il te manque un "?" pour séparer l'adresse de la page et la variable... et il manque (dans cette ligne de code....) la variable justement....
Il aurait fallu écrire :
<p><a href="passer_q.php?id_Qu="<?php echo $data['id_Qu']; ?>"><?php echo $data['Nom']; ?></a></p>


4 - Dans la page qui doit afficher le Quizz.... Il faut récupérer cette variable AVANT de l'utiliser...
C''est là que tu utilises le code que je t'avais donné précédement .. :
$id = !empty($_GET['id_Qu']) ? $_GET['id_Qu'] : 0;

Que tu peux ensuite utiliser dans ta requête
$sql1  = "SELECT id_q from quiz where id_q = '".$id."'";



5 - Je ne comprends pas pourquoi tu as un troisième fichier quiz1.php ...
vu que ta première page liste les quizz
la seconde, en fonction du quizz selectionné (via le lien cliqué) Affiche le quizz en question.... (avec ses questions et ses réponses....)
Donc ce troisième fichier est inutile.


6 - Prends l'habitude de mettre le "traitement" PHP AU DESSUS du html de tes pages. Ca rend le code plus lisible et plus facile à corriger au cas où.

Par exemple :

<?php
//-------------------------------------------
//récupération des variables:
//-------------------------------------------
$id = !empty($_GET['id_Qu']) ? $_GET['id_Qu'] : 0;


//-------------------------------------------
// Connexion à la BDD 
//-------------------------------------------
require_once "fichier_de_cnx_bdd.php";


//-------------------------------------------
// Requête dans la BDD pour récupérer les 
// infos du quizz
//-------------------------------------------
$sql1  = "SELECT id_q 
                FROM quiz 
               WHERE id_q = '".$id."'";
// ....etc


//-------------------------------------------
// Requête dans la BDD pour récupérer les 
// questions du quizz
//-------------------------------------------
  $sql  = "SELECT id_Qu
                           ,Question 
               FROM question  
               WHERE  id_q = '".$id."'";
// ....etc


//-------------------------------------------------------------------------//
// Fin du PHP
?>

<!-- Ici ton code HTML -->
<!DOCTYPE html>
<!--[if lt IE 7]><html class="lt-ie9 lt-ie8 lt-ie7" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><![endif]-->
<!--[if IE 7]><html class="lt-ie9 lt-ie8" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><![endif]-->
<!--[if IE 8]><html class="lt-ie9" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><![endif]-->
<!--[if gt IE 8]><!--><html xmlns="http://www.w3.org/1999/xhtml"><!--<![endif]-->
<html>
<head>
  <title></title>
</head>
<body>

  <!--

  Ici le reste de ton code HTML

  -->

</body>
</html>



Je te laisse apporter ces corrections.... et à revenir APRES si tu rencontres encore des soucis.



0