IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Mauvaise requête SQL #13


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Femme Profil pro
    Webmarketer
    Inscrit en
    Septembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Webmarketer
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Septembre 2011
    Messages : 5
    Par défaut Mauvaise requête SQL #13
    Bonjour,

    Je travaille sur ma propre boutique prestashop et je souhaite pouvoir la dupliquer en local pour faire des modifications.

    Etape 1:
    Je transfert donc tout le contenu de mon site et la BDD sur wamp. Mais quand je vais sur mon Back office, pour voir les produits, j'ai l'erreur

    Mauvaise requête SQL
    Expression #13 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'ovh_prestashop.pd.nb_downloadable' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

    J'ai demandé à OVH, il me disent que cela ne vient pas d'eux.

    Etape 2: je décide de upgrader mysql sous ovh de la version 5.5 vers 5.6 puis 5.7, pour que les deux version wamp/ovh soient compatibles.

    >>Du coup, la même erreur apparaît en ligne
    >>Dans phpmyadmin j'ai un gros panneau rouge

    Warning in ./libraries/dbi/DBIMysqli.class.php#258
    mysqli_query(): (HY000/1682): Native table 'performance_schema'.'session_variables' has the wrong structure
    Backtrace

    ./libraries/dbi/DBIMysqli.class.php#258: mysqli_query(
    object,
    string 'SHOW VARIABLES LIKE \'lower_case_table_names\'',
    integer 0,
    )
    ./libraries/DatabaseInterface.class.php#183: PMA_DBI_Mysqli->realQuery(
    string 'SHOW VARIABLES LIKE \'lower_case_table_names\'',
    object,
    integer 1,
    )
    ./libraries/DatabaseInterface.class.php#1796: PMA_DatabaseInterface->tryQuery(
    string 'SHOW VARIABLES LIKE \'lower_case_table_names\'',
    NULL,
    integer 1,
    boolean false,
    )
    ./libraries/Util.class.php#4367: PMA_DatabaseInterface->fetchValue(
    string 'SHOW VARIABLES LIKE \'lower_case_table_names\'',
    integer 0,
    integer 1,
    )
    ./libraries/DatabaseInterface.class.php#428: PMA_Util::getCollateForIS()
    ./libraries/DatabaseInterface.class.php#494: PMA_DatabaseInterface->_getSqlForTablesFull(
    array,
    string '',
    )
    ./libraries/db_info.inc.php#223: PMA_DatabaseInterface->getTablesFull(
    string 'ovh_prestashop',
    boolean false,
    boolean false,
    NULL,
    integer 0,
    boolean true,
    string 'Name',
    string 'ASC',
    NULL,
    )
    ./db_structure.php#56: require(./libraries/db_info.inc.php)
    Je suis complétement perdue, Pouvez-vous m'eclairer svp?

    Merci et bonne journée

    MJ

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 706
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 706
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    je ne connais pas bien MySQL, mais je serais curieux de savoir comment vous avez procédé au "transfert du contenu" ? A mon avis par un simple copier-coller des fichiers ?
    Avec les SGBDs que j'utilise, on préfère passer par un Backup/Restore des bases, peut-être est-ce là l'opération à faire (backup de la base sur le serveur OVH, restore sur votre poste)

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 660
    Billets dans le blog
    10
    Par défaut
    Il me semble que c'est depuis la version 5.7 que MySQL applique la norme SQL c'est à dire que les colonnes de la clause SELECT doivent être conformes à celles du GROUP BY
    Du coup si vous avez une requête non normée dans votre application, il est normal qu'elle soit rejetée sur une BDD 5.7, et la bonne démarche est de corriger cette requête, le résultat avec une version antérieure étant aléatoire pour les colonnes non groupées.

  4. #4
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    7 045
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 7 045
    Par défaut
    Salut à tous.

    Citation Envoyé par pommekiwi28
    Mauvaise requête SQL
    Expression #13 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'ovh_prestashop.pd.nb_downloadable' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
    La réponse est indiqué dans le message d'anomalie :
    this is incompatible with sql_mode=only_full_group_by
    Pour résoudre votre problème dans WampServer, vous modifiez la variable système "sql_mode" en mettant rien du tout.
    Autrement dit, vous faites "sql_mode = """.

    Citation Envoyé par pommekiwi28
    J'ai demandé à OVH, il me disent que cela ne vient pas d'eux.
    En effet, cela ne vient pas d'eux !
    La seule question que vous devez vous poser est avec quelle version MySql a été développé votre version prestashop ?

    Est-ce la première fois que vous utilisez Prestashop ?

    @+

  5. #5
    Membre du Club
    Femme Profil pro
    Webmarketer
    Inscrit en
    Septembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Webmarketer
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Septembre 2011
    Messages : 5
    Par défaut
    Bonjour,

    Merci de vos suggestions

    J'utilise prestashop depuis plusieurs années, et jusque là, c'était la version mysql 5.5. C'est quand j'ai voulu transférer sous wamp (dernière version donc avec mysql 5.7) que cela a buggé.

    Pensant que c'était une incompatiblité entre mysql 5.5 (ovh) et mysql 5.7 (wamp), j'ai donc basculé mysql ovh en 5.7, et maintenant ca bugg partout

    Pouvez vous me dire comment modifier le sql_mode dans wamp, j'ai cherché, et je ne vois pas, et j'aimerai éviter de le planter encore plus

    Pour résoudre votre problème dans WampServer, vous modifiez la variable système "sql_mode" en mettant rien du tout.
    Autrement dit, vous faites "sql_mode = """.
    Bonne journée

  6. #6
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 955
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 955
    Par défaut
    Si vous avez la possibilité, redescendez sur la version 5.5 sur votre serveur OVH, puis faites des tests sur WAMP en 5.7 avant de modifier la version de mysql en prod.

    6.1.8 Server SQL Modes
    To set the SQL mode at server startup, use the --sql-mode="modes" option on the command line, or sql-mode="modes" in an option file such as my.cnf (Unix operating systems) or my.ini (Windows). modes is a list of different modes separated by commas. To clear the SQL mode explicitly, set it to an empty string using --sql-mode="" on the command line, or sql-mode="" in an option file.

  7. #7
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    7 045
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 7 045
    Par défaut
    Salut pommekiwi28.

    Vous introduisez "sql-mode = ''" dans le fichier my.ini, si possible dans la section "[wampmysqld]".
    Et bien sûr, vous redémarrez les services de wampserver.

    @+

  8. #8
    Membre du Club
    Femme Profil pro
    Webmarketer
    Inscrit en
    Septembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Webmarketer
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Septembre 2011
    Messages : 5
    Par défaut
    Merciiii

    cela fonctionne effectivement!

    il faut maintenant que je puisse le faire chez ovh

    Bonne journée et encore merci

    Marilyne

  9. #9
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    7 045
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 7 045
    Par défaut
    Salut pommekiwi28.

    La variable "sql-mode" permet dans une version mysql supérieure de rester compatible avec l'ancienne version.
    Mais le fait que MySql ne respecte pas certaines normes font que vous vous retrouvez avec ce genre de problème.

    Etes-vous revenu à la version MySql 5.5 ou êtes-vous resté dans la version 5.7 ?

    @+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requête SQL
    Par Leludo dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/07/2024, 16h41
  2. Requête sql qte bonne et qte mauvaise de chaque article
    Par ghir_ana dans le forum Développement
    Réponses: 1
    Dernier message: 18/05/2012, 11h02
  3. Réponses: 2
    Dernier message: 28/05/2008, 13h17
  4. [SQL] Modification des données, mauvaise requête ?
    Par Scurz dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/08/2006, 22h22
  5. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 19h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo