Bonjour,
je confirme l'analyse de Philippe Lemaire : MySQL 5.7 exige que les champs 
utilisés dans ORDER BY soient dans la sélection.
J'ai apporté de telles modifications à GRR auquel je contribue activement.
Cordialement,
Yan Naessens

Le 13/11/19 05:40, LEMAIRE Philippe <lemaire.phili...@lfay.com.vn> a écrit :
> 
> 
> 
> 
> 
> 
> 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??ilier votre abonnement ??cette liste :
> https://lists.sylogix.net/mailman/listinfo/gepi-users

_________________________________________________________________________________
Documentation Gepi en ligne : http://www.sylogix.org/projects/gepi/wiki
Pour modifier ou rsilier votre abonnement  cette liste :
https://lists.sylogix.net/mailman/listinfo/gepi-users

Répondre à