Evarisk / Digirisk

DigiRisk pour Dolibarr, créer et gérer votre Document Unique facilement
GNU General Public License v3.0
26 stars 33 forks source link

Bug des requêtes SQL 'this is incompatible with sql_mode=only_full_group_by' #2886

Open FredBl79 opened 1 year ago

FredBl79 commented 1 year ago

Bug

Bonjour,

Je suis en 9.8.1 sur une V15.03 et je suis face à pas mal de soucis de SQL : _Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'digirisk.t.rowid' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_groupby

J'utilise une autre instance de Dolibarr depuis un moment pour la partie ERP et je n'avais rencontré ce souci.

Il semble que la configuration native de MySQL Server : sql_mode=only_full_group pose souci sur vos requêtes ayant des group by

Exemple sur le

D'après les développeurs Dolibarr et les articles Mysql , il faut éviter de modifier ce paramètre saut pour travailler sur du Legacy.

Serait il possible de corriger cela dans vos différentes requêtes Digirisk en intégrant la liste des colonnes dans les group by ?

Merci Fred

Environment Version

15.0.3

Environment OS

Ubtuntu

Environment Web server

Apache/2.4.41 (Ubuntu)

Environment PHP

7.4.3

Environment Database

mysqli (mysqlnd 7.4.3)

Environment URL(s)

No response

Expected and actual behavior

No response

Steps to reproduce the behavior

No response

Attached files

No response

FredBl79 commented 1 year ago

J'ai corrigé les bugs de mon côté en retirant les clauses 'GROUP BY' dans ces différentes page qui plus est non pas de sens car il n'y a aucun regroupement (???)

class/actions_digiriskdolibarr.class.php --> public function printFieldListWhere($parameters, $object) view/digiriskusers.php --> l368 $sql .= ' /GROUP BY u.rowid/'; class/evaluator.class.php --> $allevaluators = $this->fetchAll('','', 0, 0, array(), 'AND', '');

J'en ai surement oublié...

Bonnes fêtes ;)