Bonsoir tout le monde,
J'ai un formulaire qui ressemble à ceci :
J'ai donc une table qui reprend ces combinaisons dès qu'un bouton radio du formulaire a été cliqué.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 9 groupes, j'ai donc une première boucle de 1 à 9 :
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 for($i=1; $i<=9;$i++) {
Gràce à ça, je peux créer ma seconde boucle :
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);
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
3 for($j=1;$j<=$res['COMPTE'];$j++) {
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.
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']."'";
Je coince.
Voici mon code :
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
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;
Je remercie la personne qui aura le courage de lire ceci et aussi les autres.
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']; } ?>
Bonne soirée.
beegees
Partager