Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/12/2006, 16h08   #1
Candidat au titre de Membre du Club
 
Inscription : juillet 2004
Messages : 41
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 41
Points : 10
Points : 10
Envoyer un message via MSN à ribrok
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 :
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 :
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
ribrok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2006, 16h59   #2
Candidat au titre de Membre du Club
 
Inscription : juillet 2004
Messages : 41
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 41
Points : 10
Points : 10
Envoyer un message via MSN à ribrok
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.
ribrok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2006, 19h44   #3
Rédacteur
 
Avatar de doctorrock
 
Homme Julien Pauli
Architecte de système d'information
Inscription : mai 2006
Messages : 597
Détails du profil
Informations personnelles :
Nom : Homme Julien Pauli
Âge : 29
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : mai 2006
Messages : 597
Points : 5 015
Points : 5 015
Essaye de mettre des backquotes ( ` ) autour de tous tes noms de champ et de table

Code :
 SELECT `obj_tour.ID`, SUM(`obj_tour.ID`) FROM `obj_tour`, (...)
doctorrock est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2007, 15h42   #4
Candidat au titre de Membre du Club
 
Inscription : juillet 2004
Messages : 41
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 41
Points : 10
Points : 10
Envoyer un message via MSN à ribrok
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...
ribrok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2007, 09h33   #5
Membre éclairé
 
Homme Yann
Développeur Web
Inscription : avril 2005
Messages : 280
Détails du profil
Informations personnelles :
Nom : Homme Yann
Âge : 27
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 280
Points : 366
Points : 366
Envoyer un message via MSN à yannux
Citation:
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 :
 SELECT `obj_tour.ID`, SUM(`obj_tour.ID`) FROM `obj_tour`, (...)
doit être
Code :
 SELECT obj_tour.`ID`, SUM(obj_tour.`ID`) FROM `obj_tour`, (...)
yannux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2007, 16h45   #6
Candidat au titre de Membre du Club
 
Inscription : juillet 2004
Messages : 41
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 41
Points : 10
Points : 10
Envoyer un message via MSN à ribrok
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.
ribrok est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h03.


 
 
 
 
Partenaires

Hébergement Web