Comment vérifier le formulaire
Bonsoir tout le monde,
J'ai un formulaire qui ressemble à ceci :
Citation:
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:
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:
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:
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:
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:
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:
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