Classement selon le champ 'prix', mais en tenant compte du champ 'devise'
cs_goldenboy68
Messages postés1596Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention 9 juin 2011
-
5 janv. 2009 à 10:40
cs_goldenboy68
Messages postés1596Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention 9 juin 2011
-
5 janv. 2009 à 15:38
Bonjour,
Alors voilà, j'ai un classement de produits à faire selon le prix de ceux-ci. Le problème c'est qu'ils ne sont pas tous entrés dans la même devise. Lors du classement il faut que je tienne compte du taux de change actuel.
Admettons que le taux de change soit déjà récupéré, comment je peux faire ma requête au niveau du ORDER BY ?
SELECT * FROM produits ORDER BY (prix*taux1) SI devise=devise1 OU (prix*taux2) SI devise=devise2 OU (prix*taux3) SI devise=devise3;
Si quelqu'un pouvait m'éclairer, ça m'éviterait de chercher trop longtemps sans certitude de trouver un jour ;)
cs_goldenboy68
Messages postés1596Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention 9 juin 20112 5 janv. 2009 à 11:53
Ca fait plusieurs jours que je cherche et comme d'habitude à peine posté mon message sur un forum je trouve une solution. Si ça peut en aider d'autres :
SELECT prix1/1.4 AS prix_EUR
FROM produits
WHERE (((produits.devise)='usd'))
UNION SELECT prix1*35/1.4 AS prix_EUR
FROM produits
WHERE (((produits.devise)='dop'))
UNION SELECT prix1 AS prix_EUR
FROM produits
WHERE (((produits.devise)='eur'))
ORDER BY prix_EUR;
=> si vous avez une meilleure syntaxe, je reste ouvert à toute proposition
Et si par le plus grand des hasards quelqu'un savait commun récupérer les taux de change USD/DOP, je prends aussi ! Pour le EUR/USD y'a un script sur le site de la BCE avec un taux actualisé une fois par jour (si vous avez mieux, je prends aussi).
cs_goldenboy68
Messages postés1596Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention 9 juin 20112 5 janv. 2009 à 15:02
Merci !
C'est pas mal du tout d'avoir du temps réel, par contre c'est un peu lent. J'vais essayer de mettre ça dans un SWF pour que mon site se charge en même temps et que le SWF fasse l'enregistrement des taux dans la BDD en arrière-plan.
Tu crois que c'est une bonne façon de faire ?
@+! Samy
Vous n’avez pas trouvé la réponse que vous recherchez ?
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 5 janv. 2009 à 15:23
Tu peux faire un cache et lancé un bat tous les jours par exemple ou toutes les semaines
et enregistré dans un fichier texte (xml) ou une BDD les valeurs
cs_goldenboy68
Messages postés1596Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention 9 juin 20112 5 janv. 2009 à 15:38
J'suis sur un hébergement plutôt basique sur ce projet. Pas de serveur dédié pour configurer la tâche planifiée.
Donc j'pense que j'vais faire une table avec les champs "date_heure" et "tauxUSD_EUR" et "tauxUSD_DOP" et mon SWF va appeler un fichier PHP vérifiant si l'ancienneté de la mise à jour est supérieure à 2h par exemple qu'il fasse la requête vers le webservice puis la mise à jour de la table.