Bonsoir tout le monde,

J'ai un formulaire qui ressemble à ceci :

Groupe 1 :
Question 1 : réponse 1 réponse 2 réponse 3 réponse 4 réponse 5

Une réponse peut donc être 1_1_2 (pour la réponse 2)

Question 2 : réponse 1 réponse 2 réponse 3 réponse 4 réponse 5

Une réponse peut être 1_2_1 (pour la réponse 1)

Question 3 : réponse 1 réponse 2 réponse 3 réponse 4 réponse 5

...

Groupe 2 :
Question 1 : réponse 1 réponse 2 réponse 3 réponse 4 réponse 5

Une réponse peut être 2_1_4 (pour la réponse 4)

Question 2 : réponse 1 réponse 2 réponse 3 réponse 4 réponse 5

Une réponse peut être 2_2_3 (pour la réponse 3)

Question 3 : réponse 1 réponse 2 réponse 3 réponse 4 réponse 5
...
J'ai donc une table qui reprend ces combinaisons dès qu'un bouton radio du formulaire a été cliqué.

J'ai 9 groupes, j'ai donc une première boucle de 1 à 9 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
for($i=1; $i<=9;$i++)
		{
Dans chaque groupe, j'ai n questions, comme je ne sais pas à l'avance combien, je compte le nombre de questions :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
$sql_COMPTE = "SELECT COUNT(ID) as COMPTE from noms_rubriques WHERE ID_fieldset  = " .$i;
$query_COMPTE = mysql_query($sql_COMPTE);
$res = mysql_fetch_array($query_COMPTE);
Gràce à ça, je peux créer ma seconde boucle :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
for($j=1;$j<=$res['COMPTE'];$j++)
			{
Je vérifie si la combinaison numéro du groupe et numéro de la question est présente dans ma table :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
$sql = "SELECT Present_ou_pas from cotations WHERE Present_ou_pas = '".$i."_".$j."' AND Matricule = '".$_POST['matricule']."'";
Donc, si au moins une réponse dans une ligne (question) a été répondue, je dois considérer la ligne comme répondue et passer à la suivante.

Je coince.

Voici mon code :

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
<?php
 
		include('../connexion.php');
		include('../Fonctions/Nom_fieldset_rubrique.php');
 
		for($i=1; $i<=9;$i++)
		{
			$nombre = 0;
			$sql_COMPTE = "SELECT COUNT(ID) as COMPTE from noms_rubriques WHERE ID_fieldset  = " .$i;
			$query_COMPTE = mysql_query($sql_COMPTE);
 
			$res = mysql_fetch_array($query_COMPTE);
			for($j=1;$j<=$res['COMPTE'];$j++)
			{
				$sql = "SELECT Present_ou_pas from cotations WHERE Present_ou_pas = '".$i."_".$j."' AND Matricule = '".$_POST['matricule']."'";
				$mysql_sql = mysql_query($sql);
				$nombre = mysql_num_rows($mysql_sql);
 
				//si j'ai trouvé au moins un bouton radio dans la rubrique (par exemple "Assiduité et ponctualité" alors je sais qu'une cote a été attribuée à cette ligne, je peux passer à la suivante
				if($nombre > 0)
				{
					$position_manquante.= Nom_fieldset_rubrique($i."_".$j);
					break;					
				}
			}
 
		}
 
		//$position_manquante.= Nom_fieldset_rubrique($i."_".$j);
 
		$retour = "COTE(S) MANQUANTE(S) :";
		$retour.= "\n".$position_manquante;
		echo $retour;
		//echo $sql;
Voici le code de la fonction Nom_fieldset_rubrique qui permet de retourner le nom du groupe et de la question qui n'a pas été répondue :

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
 
<?php
	// cette fonction informe l'utilisateur les points qu'il n'a pas remplis (bouton radio) en renvoyant le nom du fieldset et le nom de la rubrique
	function Nom_fieldset_rubrique($reference)
	{
		$tab_ref = explode("_",$reference);
 
		$fieldset = "SELECT nom_Fieldset FROM noms_fieldset WHERE ID = ".$tab_ref[0];
		$query_fieldset = mysql_query($fieldset);
		$res_fieldset = mysql_fetch_array($query_fieldset);
 
		$rubrique = "SELECT nom_rubrique FROM noms_rubriques WHERE ID = ".$tab_ref[1];
		$query_rubrique = mysql_query($rubrique);
		$res_rubrique = mysql_fetch_array($query_rubrique);
 
		return $res_fieldset['nom_Fieldset'].' => ' . $res_rubrique['nom_rubrique'];
 
	}
?>
Je remercie la personne qui aura le courage de lire ceci et aussi les autres.

Bonne soirée.

beegees