Bonjour tout le monde,
Je viens de découvrir un bug dans ma page web.
Mon but est d'afficher l'ID de la table inscrits_en, la note se trouvant dans la table inscrits_en, le matricule de l'étudiant se trouvant dans la table inscrits_en, le nom de l'étudiant se trouvant dans la table etudiants, le prénom se trouvant dans la table etudiants, la note se trouvant dans la table inscrits_en.
Le problème, c'est que c'est l'ID de la table etudiants qui est utilisé dans la page web et non celui de la table inscrits_en (ce qui crée un gros bug, une cote pour un étudiant va dans un autre étudiant).
J'utilise cette chaine SLQ :
Je pense que le problème vient de là.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $sql_Affichage_Etudiants = "SELECT * FROM `inscrits_en` LEFT JOIN `etudiants` ON ( inscrits_en.MATRICULE_ET = etudiants.MATRICULE_ET ) WHERE MNEMONIC = '".$_POST['idmnemonics']."' AND TYPE_DE_COURS = '".$_POST['id_types']."' AND CATEGORIE = '".$_POST['id_categories']."' ";
Comment puis-je indiquer que c'est l'ID de la table inscrits_en que je dois utiliser et non l'ID de la table étudiants ?
voici l'entiérté de la page :
Merci d'avance pour votre aide.
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90 <?php session_start(); include('../connexion.php'); $_SESSION['id_categories'] = $_POST['id_categories']; //affiche le bouton "clôturer" en le désactivant si le cours est clôturé ou en l'activant si le cours n'est pas clôturé // IMPORTANT : il faut laisser le code ici pour que le bouton apparaisse au-dessus !!!! $sql_check_cloture = "SELECT Cloture FROM cours WHERE MNEMONIC = '".$_POST['idmnemonics']."' AND TYPE_DE_COURS = '".$_POST['id_types']."' AND Categorie = '".$_POST['id_categories']."' "; //echo $sql_check_cloture; $query_check_cloture = mysql_query($sql_check_cloture) or die(mysql_error()); $row_Cloture = mysql_fetch_assoc($query_check_cloture); $sql_Affichage_Etudiants = "SELECT * FROM `inscrits_en` LEFT JOIN `etudiants` ON ( inscrits_en.MATRICULE_ET = etudiants.MATRICULE_ET ) WHERE MNEMONIC = '".$_POST['idmnemonics']."' AND TYPE_DE_COURS = '".$_POST['id_types']."' AND CATEGORIE = '".$_POST['id_categories']."' "; $query_comptage = mysql_query($sql_Affichage_Etudiants); if(!$query_comptage) {echo('Attention, la requete ne fonctionne pas ! '); } //ici viendra le tableau // A REMETTRE // <td style="display:none"></td> // <td style="display:none"></td> $compteur = 0; echo '<table width="100%" border="1"> <tr> <td align="center">Note originale</td> <td align="center">ID</td> <td align="center">Matricule</td> <td align="center">Nom</td> <td align="center">Prénom</td> <td align="center" width="5">Cote</td> <td align="center">Report</td> </tr>'; while ($tab = mysql_fetch_array($query_comptage)){ //gestion de la couleur des lignes, fait appel ? CSS/couleurs.css $couleur = ($compteur % 2 == 0) ? "ligne0" : "ligne1"; //onblur="comparer(document.getElementById(\'note_originale'.$tab['ID'].'\').value, document.getElementById(\'note_zone_de_texte'.$tab['ID'].'\').value);" //chiffres(event) est la fonction javascript qui vérifie les caract?res entrés par l'utilisateur (voir js/ChiffresOnly.js) //Comparer est la fonction javascript qui vérifie si la cote encodée par le Professeur est la m?me que celle de la base de données, si //c'est la m?me, on n'exécute pas le code ajax, autrement, on exécute le code AJAX qui va mettre ? jour la bd. //onfocus="this.select();" permet de donner le focus a la zone de texte soit si il prend le focus par un clic de souris, soit si il prend le focus apr?s une mauvaise entrée (exemple si le visiteur tape "w") //A REMETTRE // <td style="display:none"><input type="hidden" name="note_originale" id="note_originale'.$tab['ID'].'" value="' . $tab['NOTE'] . '" /></td> // <td style="display:none"><input type="hidden" name="i_d" id="i_d" value="' . $tab['ID'] . '" /></td> echo' <tr class="'.$couleur.'"> <td width="5%" align="center">' . $tab['NOTE'] . '</td> <td width="25%" align="center">' . $tab['ID'] . '</td> <td width="5%" align="center">' . $tab['MATRICULE_ET'] . '</td> <td width="25%" align="center">' . $tab['NOM_ET'] . '</td> <td width="35%" align="center">' . $tab['PRENOM_ET'] .'</td>' ; $sql_check_cloture = "SELECT Cloture FROM cours WHERE MNEMONIC = '".$tab['MNEMONIC']."' AND TYPE_DE_COURS = '".$tab['TYPE_DE_COURS']."' AND Categorie = '".$tab['CATEGORIE']."' "; //echo $sql_check_cloture; $query_check_cloture = mysql_query($sql_check_cloture) or die(mysql_error()); $row_Cloture = mysql_fetch_assoc($query_check_cloture); //echo $row_Cloture['Cloture']; echo' <td><input name="note_zone_de_texte'.$tab['ID'].'" type="text"'; if($row_Cloture['Cloture'] == 1) //si le cours est clôturé, on désactive les zones de texte { echo ' disabled="disabled" '; } echo 'id="note_zone_de_texte'.$tab['ID'].'" onfocus="this.select();this.style.backgroundColor=\'yellow\'" onchange="verif(this.value,'.$tab['ID'].');" onblur="this.style.backgroundColor=\'white\'" size="4" style="text-align:center" width="3 %" value="' . $tab['NOTE'] . '" /> </td>'; echo' <td width="25%" align="center"></td> </tr>'; $compteur++; } echo'</table>'; //si le cours est clôturé, le bouton "clôturer" est désactivé ?>
beegees
Partager