Le 07/09/2012 16:57, Benoit LAURENT a écrit :
Hello Pierre,
Le 7 septembre 2012 16:18, Pierre Varlet a écrit :
Bonjour
Je suis dans un sale pétrin !
J'ai développé un site en Drupal 7 chez un hébergeur. J'y utilise
views_calc pour sommer des colonnes de vues. Il marche parfaitement
bien.
Fin Août les temps de réponse n'étant pas satisfaisants et le site
devant ouvrir à la rentrée, je décide de choisir un autre hébergeur
pour le site de production (j'ai choisi web4all une assoce qui
milite pour le Libre). Je transfère le site, vérifie que tout
marche. OK.
Sauf que je n'ai pas vu que les lignes de totaux en bas des vues
views_calc ne s'affichent plus. et dans le backend il me sort un
message d'erreur :
SQLSTATE[42000]: Syntax error or access violation: 1140 Mixing of
GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is
illegal if there is no GROUP BY clause
Les vues étant les mêmes et la structure de la base aussi la seule
chose qui diffère ce sont les niveaux de logiciel MySQL d'après
phpmyadmin :
Chez l'hébergeur de mon prototype
Serveur : Version du serveur: 5.1.49-3-log
client : mysqlnd 5.0.8-dev - 20102224 - $Id:
65fe78e70ce53d27a6cd5785977229__50e490b0d0 $
Chez web4all:
Version du logiciel: 5.0.51a-24+lenny5-log - (Debian)
Version du client de base de données: libmysql - 5.1.63
Bien entendu l'assistance de web4all dit que c'est un problème
Drupal. Aucune aide de ce côté. J'ai posté aussi un billet dans le
forum de Drupal France, personne n'a d'idée.
J'ai bien une piste :
As far as why this worked locally, but not on your live server;
MySql doesn't require complete listing of non-aggregate columns in
the GROUP BY clause by default, but your live server probably has the
ONLY_FULL_GROUP_BY option turned on.
A priori il s'agit seulement d'une erreur de syntaxe, le problème n'est
pas si grave. Il faut aller dans le code du module virer le group by qui
pose probleme.
Sais tu sur quelle requete ca plante ? Logs
On peut la tourner ON via phpmyadmin :
SET sql_mode = 'ONLY_FULL_GROUP_BY';
Mais c'est la tourner OFF qu'il faudrait faire. Et je n'ai pas
trouvé comment on fait. Si quelqu'un sait... Merci
J'ai aussi vu que le groupe Drupal est au courant (on parle de Drupa
8, de patches...), mais je n'ai pas vu de solution proposée, mais
ai-je bien regardé ?
Bref si quelqu'un a une idée qui me permettrait de sortir de ce truc
je lui vouerai une reconnaissance éternelle !
Librement
Pierre
Benoit
Merci Benoît
En fait ça ne plante pas ! Heureusement à l'exécution il n'y a pas de
message d'erreur. Simplement le module ne fait pas le job : il ne
construit pas et n'affiche pas la ligne des totaux.
Le message d'erreur apparait quant on travaille sur la vue au début de
la section où est affiché la requête générée et l'aperçu du résultat
qu'on est supposé avoir à l'exécution.
Et pourquoi il ferait une erreur de syntaxe dans un environnement et pas
dans l'autre ?
Sais-tu comment avec phpmysql mettre OFF ce ONLY_FULL_GROUP_BY
Et sais-tu s'il y a moyen de modifier une requête générée par Drupal
(dangereux certes mais s'il y manque quelque chose et qu'on sait quoi ça
se tente, de nuit après une sauvegarde !)
Cordialement
Pierre
%%% Merci de respecter ces consignes http://www.linux-azur.org/savoir-vivre %%%