Bonjour,
Suite à un problème rencontré par un parent d’élève j’ai découvert un petit bug
qui est lié au passage de MySQL en 5.7
Le problème :
Lorsqu’un parent affiche le nouveau carnet de notes de son enfant, celui-ci
apparait comme n’étant rattaché à aucun groupe, par contre avec l’Interface
Classique cela s’affiche correctement.
Le compte de l’élève et du responsable sont bien configurés
La recherche :
D’après les logs il y avait un problème au niveau de la requête $nombre_groupes
= mysqli_num_rows($appel_liste_groupes); (ligne 522, fichier :
/cahier_notes/extraction_donnees_releves_notes.php)
J’ai testé les requêtes sql (ligne 490 et 506) directement dans la base et
effectivement elles se mettaient en erreur.
Le serveur refuse la requête car les champs présents dans ORDER BY ne sont pas
dans SELECT.
Effectivement si l’on ajoute les champs du ORDER BY dans SELECT tout
refonctionne correctement
Visiblement le passage à MySQL 5.7 oblige à ajouter les champs qui se trouvent
dans ORDER BY dans le SELECT :c/
Résultat (à partir de la ligne 488, fichier :
/cahier_notes/extraction_donnees_releves_notes.php) :
if ($affiche_categories) {
// On utilise les valeurs spécifiées pour la classe en question
$sql="SELECT DISTINCT jgc.id_groupe, jgm.id_matiere matiere,
jgc.categorie_id, jmcc.priority,jgc.priorite,m.nom_complet ".
"FROM j_eleves_groupes jeg, j_groupes_classes jgc,
j_groupes_matieres jgm, j_matieres_categories_classes jmcc, matieres m " .
"WHERE ( " .
"jeg.login = '" . $current_eleve_login[$i] ."' AND " .
"jgc.id_groupe = jeg.id_groupe AND " .
"jgc.categorie_id = jmcc.categorie_id AND " .
"jgc.id_classe = '".$id_classe."' AND " .
"jgm.id_groupe = jgc.id_groupe AND " .
"m.matiere = jgm.id_matiere" .
" AND jgc.id_groupe NOT IN (SELECT id_groupe FROM
j_groupes_visibilite WHERE domaine='cahier_notes' AND visible='n')";
if($choix_periode!="intervalle") {$sql.=" AND
jeg.periode='$periode_num'";}
$sql.=") " .
"ORDER BY jmcc.priority,jgc.priorite,m.nom_complet";
} else {
$sql="SELECT DISTINCT jgc.id_groupe, jgc.categorie_id, jgc.coef,
jgm.id_matiere matiere, jgc.priorite, jgm.id_matiere " .
"FROM j_groupes_classes jgc, j_groupes_matieres jgm,
j_eleves_groupes jeg " .
"WHERE ( " .
"jeg.login = '" . $current_eleve_login[$i] . "' AND " .
"jgc.id_groupe = jeg.id_groupe AND " .
"jgc.id_classe = '".$id_classe."' AND " .
"jgm.id_groupe = jgc.id_groupe" .
" AND jgc.id_groupe NOT IN (SELECT id_groupe FROM
j_groupes_visibilite WHERE domaine='cahier_notes' AND visible='n')";
if($choix_periode!="intervalle") {$sql.=" AND
jeg.periode='$periode_num'";}
$sql.=") " .
"ORDER BY jgc.priorite,jgm.id_matiere";
}
$appel_liste_groupes = mysqli_query($GLOBALS["mysqli"], $sql);
$nombre_groupes = mysqli_num_rows($appel_liste_groupes);
Configuration :
Ubuntu 16.04
Mysql 5.7.27
Conclusion :
Est il possible d’intégrer cette modif à Gepi et de vérifier si
il n’y a pas d’autres requêtes qui nécessiteraient une adaptation.
D’avance merci
Cordialement
Philippe Lemaire
_________________________________________________________________________________
Documentation Gepi en ligne : http://www.sylogix.org/projects/gepi/wiki
Pour modifier ou r�silier votre abonnement � cette liste :
https://lists.sylogix.net/mailman/listinfo/gepi-users