Récupérer une valeur précédente dans un foreach

Eléphant du PHP | 168 Messages

15 nov. 2010, 19:00

Bonjour,

J'espère que vous pourrez m'aider, je galère depuis quelques heures maintenant pour récupérer une donnée précise, voici le type de scénario que je souhaite faire.

J'ai un tableau (provenant d'une table) qui contient pour simplifier, une date (2010-11-14) ainsi que des nombres sur plusieurs colonnes (Top_1,Top_3,etc...), le but final est de regrouper le tout par semaine, puis une autre fois par mois.

Première question, est ce plus facile et rapide de le mettre en place sous forme de requête SQL ou bien d'extraire le tout, et de faire "joujou" avec des tableaux PHP ?

J'ai réussi à +/- à obtenir mes données regroupés à travers plusieurs manipulations de tableaux et de conversion de date en année et semaine.

Là où je sèche complètement, c'est que j'aimerai mettre à droite de chaque chiffre sur mon tableau HTML, l'évolution positive ou négative par rapport à la donnée précédente, mon problème est que je n'arrive pas à le conceptualiser en PHP.

Comment faire par exemple pour que lorsque je suis sur le jour du 14-10-2010 dans mon foreach,avoir la valeur de la veille ? et ainsi faire l'opération de calcul ?


Merci

ViPHP
ViPHP | 5462 Messages

15 nov. 2010, 19:05

hello, tu peux utilisé les requete SQL pour manipuler les dates
sinon regarde du coté de strtotime avec +1 day -1 day

Eléphant du PHP | 168 Messages

15 nov. 2010, 19:09

Ok Merci pour ta réponse, mais dans le cas où ce n'est pas un format directement exploitable nativement, comment peut t'on faire pour "stocker temporairement" la valeur précédente dans un tableau ?

ViPHP
ViPHP | 5462 Messages

15 nov. 2010, 19:11

Ok Merci pour ta réponse, mais dans le cas où ce n'est pas un format directement exploitable nativement, comment peut t'on faire pour "stocker temporairement" la valeur précédente dans un tableau ?
tu pourrais faire ca avec les doubly linked list mais bon, y'a surement plus simple, ton problème c'est juste l'affichage ?

Eléphant du PHP | 168 Messages

15 nov. 2010, 19:19

Mon problème au final est mon manque d'expérience je pense dans la manipulation de tableaux, je dois surement chercher des directions bien trop compliqués pour le besoin réel.

Donc ce coup-ci j'ai besoin de regrouper chaque date par semaine en additionnant en même temps chaque nombre puis au final le diviser par le nombre de jours de la semaine (en gros, faire la moyenne).

Je n'ai pas le code devant mais grosso modo, ca donnait :

foreach ..

$tab[$date_semaine]['top_1] += $row['nombre_top_1];

}

là je me retrouve avec des semaines et un total de "nombres" ? que je dois diviser par autant de jours qu'il y avait dans cette semaine..

Donc l'idée était du genre : si date_courante == date_bdd > nb_pour_cette_semaine++

et des que l'on passe a une autre semaine on reset.

Voila l'idée que je cherchais à mettre en place, sans succès....

Eléphant du PHP | 168 Messages

16 nov. 2010, 09:15

Vraiment personne pour me débloquer la situation ?

ViPHP
ViPHP | 5462 Messages

16 nov. 2010, 11:14

je te conseil d'aller voir dans les fonctions de date de mysql

Eléphant du PHP | 168 Messages

16 nov. 2010, 22:55

C'est finalement en effet la direction que j'ai prise à base de YEAR,WEEK et DATE_SUB :)