Page 1 sur 1

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

Posté : 15 nov. 2010, 19:00
par Nico
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

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

Posté : 15 nov. 2010, 19:05
par stealth35
hello, tu peux utilisé les requete SQL pour manipuler les dates
sinon regarde du coté de strtotime avec +1 day -1 day

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

Posté : 15 nov. 2010, 19:09
par Nico
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 ?

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

Posté : 15 nov. 2010, 19:11
par stealth35
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 ?

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

Posté : 15 nov. 2010, 19:19
par Nico
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....

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

Posté : 16 nov. 2010, 09:15
par Nico
Vraiment personne pour me débloquer la situation ?

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

Posté : 16 nov. 2010, 11:14
par stealth35
je te conseil d'aller voir dans les fonctions de date de mysql

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

Posté : 16 nov. 2010, 22:55
par Nico
C'est finalement en effet la direction que j'ai prise à base de YEAR,WEEK et DATE_SUB :)