Somme dans un array php
Résolu
rirififiloulou3349
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
rirififiloulou3349 Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
rirififiloulou3349 Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je dois créer un graphique avec jpgraph. Une courbe ascendante qui comptabilise pour chaque journée d'un mois les heures réalisées, sachant que chaque journée suivante comptabiliserais le total de la journée précédente...
Voici ma requête SQL qui comptabilise le total pour chaque journée sur un mois :
$premier_jour = date('Ym').'01';
mysql_select_db($database_HelirisQ, $HelirisQ);
$query_courbe_conso = "SELECT date_mission, pot_conso, SUM(pot_conso) as somme FROM liste_mission_faite WHERE date_mission >= $premier_jour AND date_mission <= '".date('Ymt')."' GROUP BY date_mission ";
$courbe_conso = mysql_query($query_courbe_conso, $HelirisQ) or die(mysql_error());
$row_courbe_conso = mysql_fetch_assoc($courbe_conso);
$totalRows_courbe_conso = mysql_num_rows($courbe_conso);
Puis je crée mon array à partir duquel jpgraph crée la courbe:
$debut_date = date('Ym');
$courbe_conso_display = array('0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0');
Je boucle sur le résultat de la requête et je remplis mon array :
do {
$date = $row_courbe_conso['date_mission'];
$date = str_split($date);
if($date[6] ==! '0'){$date = $date[6].$date[7];} else { $date = $date[7];}
$previous_conso = $row_courbe_conso['somme'];
$courbe_conso_display[$date] = $row_courbe_conso['somme'] + $previous_conso;
} while($row_courbe_conso = mysql_fetch_assoc($courbe_conso));
Mon problème se trouve ici. J'aimerais qu'à chaque passage de la boucle, la valeur précédente puisse être insérer dans la suivante, etc..
Merci pour vos réponses.
Je dois créer un graphique avec jpgraph. Une courbe ascendante qui comptabilise pour chaque journée d'un mois les heures réalisées, sachant que chaque journée suivante comptabiliserais le total de la journée précédente...
Voici ma requête SQL qui comptabilise le total pour chaque journée sur un mois :
$premier_jour = date('Ym').'01';
mysql_select_db($database_HelirisQ, $HelirisQ);
$query_courbe_conso = "SELECT date_mission, pot_conso, SUM(pot_conso) as somme FROM liste_mission_faite WHERE date_mission >= $premier_jour AND date_mission <= '".date('Ymt')."' GROUP BY date_mission ";
$courbe_conso = mysql_query($query_courbe_conso, $HelirisQ) or die(mysql_error());
$row_courbe_conso = mysql_fetch_assoc($courbe_conso);
$totalRows_courbe_conso = mysql_num_rows($courbe_conso);
Puis je crée mon array à partir duquel jpgraph crée la courbe:
$debut_date = date('Ym');
$courbe_conso_display = array('0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0');
Je boucle sur le résultat de la requête et je remplis mon array :
do {
$date = $row_courbe_conso['date_mission'];
$date = str_split($date);
if($date[6] ==! '0'){$date = $date[6].$date[7];} else { $date = $date[7];}
$previous_conso = $row_courbe_conso['somme'];
$courbe_conso_display[$date] = $row_courbe_conso['somme'] + $previous_conso;
} while($row_courbe_conso = mysql_fetch_assoc($courbe_conso));
Mon problème se trouve ici. J'aimerais qu'à chaque passage de la boucle, la valeur précédente puisse être insérer dans la suivante, etc..
Merci pour vos réponses.
A voir également:
- Somme dans un array php
- Formule somme excel colonne - Guide
- Somme si couleur - Guide
- Easy php - Télécharger - Divers Web & Internet
- Somme en anglais excel - Guide
- Expert php pinterest - Télécharger - Langages
9 réponses
essayes comme ça ?
<?php $premier_jour = date('Ym').'01'; mysql_select_db($database_HelirisQ, $HelirisQ); $query_courbe_conso = "SELECT date_mission, pot_conso, SUM(pot_conso) as somme FROM liste_mission_faite WHERE date_mission >= $premier_jour AND date_mission <= '".date('Ymt')."' GROUP BY date_mission "; $courbe_conso = mysql_query($query_courbe_conso, $HelirisQ) or die(mysql_error()); $row_courbe_conso = mysql_fetch_assoc($courbe_conso); $totalRows_courbe_conso = mysql_num_rows($courbe_conso); //Puis je crée mon array à partir duquel jpgraph crée la courbe: $debut_date = date('Ym'); //on va generer un array avec comme index les dates au format 'Ymd' $courbe_conso_display=array(); for($j=1;$j<=date('t');$j++){ //en mettant toutes les valeurs a zero en un premier temps if($j<10){ $index=date('Ym').'0'.$j; }else{ $index=date('Ym').$j; } $courbe_conso_display[$index]=0; } //on va stocker les valeurs lues dans la bdd dans un array $array_conso_bdd=array(); $memo_conso=0; do { $date_mission = $row_courbe_conso['date_mission']; /* $array_date_mission = str_split($date_mission); if($array_date_mission[6] ==! '0'){$date = $array_date_mission[6].$array_date_mission[7];} else { $date = $array_date_mission[7];} */ $previous_conso = $row_courbe_conso['somme']; //on va modifier la valeur de l'array dont l'index correspond à la date $array_conso_bdd[$date_mission] = $row_courbe_conso['somme'] + $memo_conso; $memo_conso += $previous_conso; } while($row_courbe_conso = mysql_fetch_assoc($courbe_conso)); //traitement de l'array dispay $memo_value_prec=0; foreach($courbe_conso_display as $date=>$value){ //on entre les valeurs pour les jours non vides if(isset($array_conso_bdd[$date]) && $array_conso_bdd[$date] != 0){ $courbe_conso_display[$date]=$array_conso_bdd[$date]; $memo_value_prec=$array_conso_bdd[$date]; }elseif($memo_value_prec > 0){ //si un jour est vide de conso on rentre la valeur precedente $courbe_conso_display[$date]=$memo_value_prec; } }
Bonjour,
Je suis à moitié hors sujet.
JPGRAPH n'est pas une bonne solution à mon sens.
Personnellement, j'utilise RGRAPH. Plus d'infos ici:
http://html5.immo-scope.com/index.php?page=html5/elementCanvasAvecLibRgraph
A+
Je suis à moitié hors sujet.
JPGRAPH n'est pas une bonne solution à mon sens.
Personnellement, j'utilise RGRAPH. Plus d'infos ici:
http://html5.immo-scope.com/index.php?page=html5/elementCanvasAvecLibRgraph
A+
bonjour,
essayes comme ça:
essayes comme ça:
<?php $premier_jour = date('Ym').'01'; mysql_select_db($database_HelirisQ, $HelirisQ); $query_courbe_conso = "SELECT date_mission, pot_conso, SUM(pot_conso) as somme FROM liste_mission_faite WHERE date_mission >= $premier_jour AND date_mission <= '".date('Ymt')."' GROUP BY date_mission "; $courbe_conso = mysql_query($query_courbe_conso, $HelirisQ) or die(mysql_error()); $row_courbe_conso = mysql_fetch_assoc($courbe_conso); $totalRows_courbe_conso = mysql_num_rows($courbe_conso); //Puis je crée mon array à partir duquel jpgraph crée la courbe: $debut_date = date('Ym'); $courbe_conso_display = array('0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'); //Je boucle sur le résultat de la requête et je remplis mon array : //tu utilises toujours le même nom de variable $date, évites $memo_conso=0; do { $date_mission = $row_courbe_conso['date_mission']; $array_date_mission = str_split($date); if($array_date_mission[6] ==! '0'){$date = $array_date_mission[6].$array_date_mission[7];} else { $date = $array_date_mission[7];} $previous_conso = $row_courbe_conso['somme']; $courbe_conso_display[$date] = $row_courbe_conso['somme'] + $memo_conso; $memo_conso += $previous_conso; } while($row_courbe_conso = mysql_fetch_assoc($courbe_conso));
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci Alain ça marche nickel !
Je vais maintenant essayer d'attribuer les valeurs précédentes aux jours qui suivent et pour lesquels il n'y a pas de valeurs d'insérer dans la bdd.(pour avoir des paliers et non pas des montagnes).
Si tu as une idée, je suis preneur...
merci encore
Je vais maintenant essayer d'attribuer les valeurs précédentes aux jours qui suivent et pour lesquels il n'y a pas de valeurs d'insérer dans la bdd.(pour avoir des paliers et non pas des montagnes).
Si tu as une idée, je suis preneur...
merci encore
en n'initialisant pas a zero l'array
$courbe_conso_display = array('0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0');
essayes en supprimant cette ligne
$courbe_conso_display = array('0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0');
essayes en supprimant cette ligne
En fait il faut que je garde le nombre de jours du mois dans mon array. Si je supprime la ligne array, je ne me retrouve qu'avec le nombre de lignes de la bases de données.
Du coup si par exemple entre le 15 et le 19 du mois il n'y a rien, la courbe sera néanmoins ascendante parce qu'elle va relier les deux points.
Or ce que je voudrais, c'est que les jours compris entre le 15 et le 18 gardent la valeur du 15...
De plus, quand je supprime cette ligne, jpgraph m'affiche une erreur.
Du coup si par exemple entre le 15 et le 19 du mois il n'y a rien, la courbe sera néanmoins ascendante parce qu'elle va relier les deux points.
Or ce que je voudrais, c'est que les jours compris entre le 15 et le 18 gardent la valeur du 15...
De plus, quand je supprime cette ligne, jpgraph m'affiche une erreur.