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

PHP & Base de données Discussion :

[SQL] Requête fonction SUM


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 41
    Points : 32
    Points
    32
    Par défaut [SQL] Requête fonction SUM
    Bonjour,

    J'ai un soucis que je ne comprends pas. je crée la requete suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT obj_tour.ID, SUM(obj_tour.ID) FROM obj_tour, rel_tour_mot_indexe, obj_mot_indexe WHERE obj_tour.ID = rel_tour_mot_indexe.ID_obj_tour AND obj_mot_indexe.ID = rel_tour_mot_indexe.ID_mot_indexe AND ((obj_mot_indexe.libelle = 'HOTEL' AND rel_tour_mot_indexe.emplacement='titre') OR (obj_mot_indexe.libelle = 'HOTEL' AND rel_tour_mot_indexe.emplacement='description') OR (obj_mot_indexe.libelle = 'HOTEL' AND rel_tour_mot_indexe.emplacement='motsClefs')) GROUP BY obj_tour.ID ORDER BY SUM(pertinence) DESC LIMIT 0,15;
    Cela me renvoie une erreur du framework Zend :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 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 'ADD(pertinence) FROM obj_tour, rel_tour_mot_indexe, obj_mot_indexe WHERE obj_t' at line 1' in /usr/share/php/Zend/Db/Adapter/Pdo/Abstract.php:119 Stack trace: #0 /usr/share/php/Zend/Db/Adapter/Pdo/Abstract.php(119): PDO->prepare('SELECT obj_tour...') #1 /usr/share/php/Zend/Db/Adapter/Abstract.php(154): Zend_Db_Adapter_Pdo_Abstract->prepare('SELECT obj_tour...') #2 /var/www/test.tourisme-midi-pyrenees.loc/includes/classes/T_LAETIS_site_class.php5(24): Zend_Db_Adapter_Abstract->query('SELECT obj_tour...') #3 /var/www/test.tourisme-midi-pyrenees.loc/includes/classes/TmoteurRecherche_class.php5(213): T_LAETIS_site::query('SELECT obj_tour...') #4 /var/www/test.tourisme-midi-pyrenees.loc/resultat.php5(33): TmoteurRecherche->executerRequete('SELECT obj_tour...') #5 {main} throw in /usr/share/php/Zend/Db/Adapter/Pdo/Abstract.php on line 119
    ALOors que sous mon interface phpmyadmin, la requete fonctionne et me renvoie des resultas cohérents.

    A priori, cela ne fonctionne pas a cause de la fonction SUM, est-ce que Zend pose un probleme. Quelqu'un a t'il des infos la dessus ?

    Merci d'avance

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 41
    Points : 32
    Points
    32
    Par défaut
    Apparemment Zend ne gere pas la fonction SUM() de sql.

    Est-ce que quelqu'un sait comment je peux faire pour additionner les valeurs d'un champ d'une table MySql à partir du framework Zend?

    MErci.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Essaye de mettre des backquotes ( ` ) autour de tous tes noms de champ et de table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     SELECT `obj_tour.ID`, SUM(`obj_tour.ID`) FROM `obj_tour`, (...)

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 41
    Points : 32
    Points
    32
    Par défaut
    J'ai essayé mais cela ne fonctionne toujours pas.

    J'ai exécuté ma requête pas a pas et je n'ai pas de résultats seulement lorsque je rajoute "SUM(pertinence as pertinence)" dans mon SELECT .

    Est ce un problème de version de Zend? de configuration ?

    Help me please...

  5. #5
    Membre averti
    Homme Profil pro
    Lead Dev Web
    Inscrit en
    Avril 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lead Dev Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2005
    Messages : 282
    Points : 390
    Points
    390
    Par défaut
    J'ai exécuté ma requête pas a pas et je n'ai pas de résultats seulement lorsque je rajoute "SUM(pertinence as pertinence)" dans mon SELECT .
    Plutôt un SUM(pertinence) AS pertinence ?
    C'est une erreur Mysql et non pas avec le Zend Framework spécifiquement, ou alors Pdo qui a un problème :s.

    De plus les quotes ` ` ne doivent pas inclure le nom de la table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     SELECT `obj_tour.ID`, SUM(`obj_tour.ID`) FROM `obj_tour`, (...)
    doit être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     SELECT obj_tour.`ID`, SUM(obj_tour.`ID`) FROM `obj_tour`, (...)

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 41
    Points : 32
    Points
    32
    Par défaut
    C'est un problème PDO avec toutes les fonctions de calcul SQL (MIN, MAX, AVG,...)

    Voici un lien qui explique comment résoudre le problème.

    http://paradigma.pt/ja/slog/index.ph...ror_fixed.html

    Attention cela provoque des conflits de compatibilité avec MySql mais la correction du bug est possible si l'on s'applique.

    Bon courage.

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

Discussions similaires

  1. [Requête] Fonction Sum et Avg
    Par Mou dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 14/05/2007, 14h17
  2. [SQL] Requêtes en fonction de points
    Par Anduriel dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/09/2006, 12h54
  3. [ACCESS2002][fonction sum dans une requête]
    Par louroulou dans le forum Access
    Réponses: 1
    Dernier message: 14/06/2006, 09h26
  4. [Débutant / SQL] Requête avec la fonction MAX
    Par bugmenot dans le forum Access
    Réponses: 3
    Dernier message: 14/04/2006, 10h43
  5. [MySQL] Filtrage par ma requête sql en fonction du résultat d'un combo box
    Par digger dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 21/02/2006, 17h25

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