Sur les versions 10.0.1 et 10.0.2, sur une commande fournisseur si on choisit l’onglet « Evénements », on obtient le message d’erreur suivant:
Date: 20191002220855
Dolibarr: 10.0.2
Niveau de fonctionnalités: 2
PHP: 7.3.6
Serveur: Apache
OS: Linux paas_354 4.9.124-paas-2270098 #1 SMP PREEMPT Tue Aug 28 15:11:59 CEST 2018 x86_64
UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.1 Safari/605.1.15
Url sollicitée: /fourn/commande/info.php?id=431
Referer: https://www.myweb.site/fourn/commande/card.php?id=431
Gestionnaire de menu: eldy_menu.php
Modules/Applications: user, comptabilite, banque, commande, ecm, facture, fournisseur, societe, service, fckeditor, margin, propal, multicurrency, categorie, simplefab, stock, product, expedition
Type gestionnaire de base de données: mysqli
Requête dernier accès en base en erreur: ORDER BY dp DESC, id
Code retour dernier accès en base en erreur: DB_ERROR_SYNTAX
Information sur le dernier accès en base en erreur: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY dp DESC, id' at line 1
OS : Linux paas_354 4.9.124-paas-2270098 #1 SMP PREEMPT Tue Aug 28 15:11:59 CEST 2018 x86_64
PHP: version 7.3.6 Jun 26 2019 15:16:53
mysqli: mysqlnd 5.0.12-dev - 20150407 - $Id: 7cc7cc96e675f6d72e5cf0f267f48e167c2abb23 $
MySQL: MySQL or MariaDB 5.5.61-38.13-log
Je vais vivre avec. Je n’utilise pas cette fonction souvent. J’ai trouvé le bug par erreur.
Par contre en analysant l’erreur MySQL ne peut-on pas isoler la ligne qui crée l’erreur et vérifier la syntaxe vis-à-vis de la structure de la table en faute qui n’a peut-être pas été mise à jour correctement?
L’erreur qui existe est qu’une requête SQL est construite en étant erronée. Typiquement, il doit y avoir une boucle sur quelque chose ou des conditions pour construire la première partie de la requête, puis la fin est ajoutée. Ici, on ne retrouve que la fin et je présume que c’est parce que la boucle est vide ou les conditions ne sont pas remplies. Il faut vraiment plonger dans le code pour comprendre le hiatus.
Bonjour
En version 10, en montant le MAIN FEATURE LEVELà 2 tu dois pouvoir activer la debugbar et dans celle ci tu trouvera la requête sql défaillante.
Qu’est ce que le module simplefab?
J’ai le même problème sur deux sites en production.
Le premier est une mise à jour (successives) depuis 3.3.5 à 10.0.2 et elle comporte le module SimpleFab
Le second site est une mise à jour depuis 7.0.2 à 10.0.2 et ne comporte pas le module SimpleFab
Le module SimpleFab est un module que j’ai écrit moi-même il y a de nombreuses années (en 2014) pour me permettre de gérer la fabrication de certains produits finis de manière simplifiée (assemblage produit virtuel vers un produit fini, gestion de la BOM, transfert produit finis, démontage d’un produit en pièces détachées retournant au stock, etc.). Bref, comme le module n’est pas installé sur le second site, il ne doit pas être coupable.
Sur le site 1, MAIN_FEATURES_LEVEL est déjà à 2, sur le site 2 MAIN_FEATURES_LEVEL est à 0.
J’ai activé le « debugbar ». Toutefois, lorsque je re-crée l’erreur (qui d’ailleurs est systématique), le log DebugBar ne comporte pas la requête SQL mais juste le même message d’erreur que déjà cité en rouge. Mais pas de requête complète originelle ou bien peut-être bien que la requête originelle est: « ORDER BY dp DESC, id » uniquement => requête erronée.