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