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 %%%








Répondre à