|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Futur Membre du Club
![]() Inscription : avril 2010 Messages : 105 ![]() |
Bonjour,
J'aurais besoin d'un peu d'aide. Je vais essayer de vous expliquer. J'ai une requête qui dans phpmyadmin me renvoie ceci : ________________________ choix / id /nb_produit --------------------------- 1 / 3 / 7 1 / 8 / 1 1 / 10 / 2 1 / 11 / 1 2 / 12 / 1 2 / 13 / 3 2 / 14 / 7 2 / 15 / 8 3 / 16 / 8 Chaque ligne représente une commande, avec le nombre de produits pour chacune trié par mois ( variable choix = mois, donc choix=1 >> janvier) Je cherche à savoir combien j'ai de produits supérieur à 5. Par exemple pour la première ligne, j'ai 7 produits donc 2 produit supérieur à 5. J'additionne ensuite cette quantité par mois donc je devrais avoir pour le mois de : -Janvier (choix = 1) 2 produits - Février = 5 produits (7-5)+(8-5) - Mars = 3 produits. Je me retrouve avec en sortie: Janvier>> 2 produits Février >> 7 produits Mars >> 10 produits Clairement, il additionne tout. pour février il a bien trouver 5 produit mais + les 2 de janvier, pour mars il a bien trouver les 3 produits mais il a rajouter les 7 de février. En résumé >> janvier = les produits supérieur a 5 de janvier février >> les produits de janvier et février mars >> les produits de janvier février et mars. Il devrait pas faire ca. J'en deviens fou. Une semaine que je cherche alors je me tourne vers vous. Voici mon code, il doit y avoir un mini détail qui fait tt rater .. Code :
J'ai a peu pres tout essayer, bien remettre toutes les variables à zéro, mettre des prints, des message d erreurs partt.. Je vous remercie d'avance !! |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Cette condition me parait douteuse.
Code :
if ($tab_cout[$row -> choix] = $row -> nb_produit > 5) Code sql :
|
||
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : avril 2010 Messages : 105 ![]() |
Bonjour, en fait il serait bien mieux pour moi de ne pas changer la requête.
En fait, j'ai exactement le même problème sur d'autre pages et je dois effectuer des petits traitements php qui ne sont pas gérable par le SQL sur ces autres pages. Le problème est exactement le même. En janvier tout va bien, février me renvoie les résultats de janvier + février ect .. |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : janvier 2006 Messages : 951 ![]() |
en tout cas, je ne vois pas comment tu as dit à ton algo que février c'est pas janvier. C'est une information qui apparait dans le commantaire et pas dans le code ni dans le résultat de la donnée. Quel que part dans ton code il devrait y avoir un systeme qui étudie le cas d'un changement de mois. En fait je sais même pas faire le lien entre un mois et ta premiere requete.
D'autre part LE langage fait pour manipuler les données c'est SQL, c'est pas php, c'est rare les manipulations qu'on ne peut pas faire en sql.
__________________
PHP fait nativement la validation d'adresse électronique Utilisez le bouton résolu! |
|
|
00
|
|
|
#5 | ||
|
Membre Expert
![]() ![]() Sébastien AlfaiateDéveloppeur Web Inscription : janvier 2007 Messages : 1 329 ![]() |
Essaye cette requete :
Code sql :
__________________
Zend Certified Engineer PHP 5.3 « Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana |
||
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : janvier 2006 Messages : 951 ![]() |
@Seb33300 tu t'es bcp embêté pour ne pas écrire de HAVING.
__________________
PHP fait nativement la validation d'adresse électronique Utilisez le bouton résolu! |
|
|
00
|
|
|
#7 | ||
|
Futur Membre du Club
![]() Inscription : avril 2010 Messages : 105 ![]() |
J'ai changer le code php et ca fonctionne bien.
Alors pour vous répondre, le traitement pour savoir à quels mois on est se fait plus loin de le code. Jai simplement ici mis le bout de code que je soupçonnais de faire des bêtises. Si je ne voulais pas changer la requête c parce que dans les autres pages où j'ai le même problème, je dois par exemple extraire un code postal et un id collissimo et faire des expressions régulières. Si les 2 premiers chiffre sont 8L la commande est nationale ce genre de choses. Je récupère ensuite le poids d'une commande et selon si la commande est nationale ou internationale ou autre, le poids définit le prix des frais de ports. (avec énormément de if , si le poids est entre 200g et 300g et la commande en nationale le frais de port sera un certain nombre). Je ne pense pas que cela soit jouable en SQL. Ci joint le code qui a résolu le problème. Je n'ai plus qu'à l'adapter pour qui'il fonctionne sur cette deuxième page plus complexe. Je vous remercie de votre aide. Code :
|
||
|
|
00
|
|
|
#8 |
|
Futur Membre du Club
![]() Inscription : avril 2010 Messages : 105 ![]() |
ta requête seb fonctionne bien ca m'aurait donné le même résultat
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com