Somme dans un array php
Résolu/Fermé
rirififiloulou3349
Messages postés
8
Date d'inscription
dimanche 6 janvier 2013
Statut
Membre
Dernière intervention
22 janvier 2013
-
6 janv. 2013 à 21:05
rirififiloulou3349 Messages postés 8 Date d'inscription dimanche 6 janvier 2013 Statut Membre Dernière intervention 22 janvier 2013 - 8 janv. 2013 à 22:13
rirififiloulou3349 Messages postés 8 Date d'inscription dimanche 6 janvier 2013 Statut Membre Dernière intervention 22 janvier 2013 - 8 janv. 2013 à 22:13
A voir également:
- Somme dans un array php
- Somme si couleur - Guide
- Somme excel - Guide
- Easy php - Télécharger - Divers Web & Internet
- Recherchev somme plusieurs lignes ✓ - Forum Excel
- Php natif - Forum PHP
9 réponses
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
8 janv. 2013 à 18:41
8 janv. 2013 à 18:41
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; } }
rirififiloulou3349
Messages postés
8
Date d'inscription
dimanche 6 janvier 2013
Statut
Membre
Dernière intervention
22 janvier 2013
7 janv. 2013 à 07:46
7 janv. 2013 à 07:46
Personne n'a d'idées ?
mpmp93
Messages postés
6652
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2015
1 339
7 janv. 2013 à 09:34
7 janv. 2013 à 09:34
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+
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
7 janv. 2013 à 14:39
7 janv. 2013 à 14:39
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
rirififiloulou3349
Messages postés
8
Date d'inscription
dimanche 6 janvier 2013
Statut
Membre
Dernière intervention
22 janvier 2013
7 janv. 2013 à 20:47
7 janv. 2013 à 20:47
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
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
7 janv. 2013 à 21:17
7 janv. 2013 à 21:17
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
rirififiloulou3349
Messages postés
8
Date d'inscription
dimanche 6 janvier 2013
Statut
Membre
Dernière intervention
22 janvier 2013
7 janv. 2013 à 21:41
7 janv. 2013 à 21:41
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.
rirififiloulou3349
Messages postés
8
Date d'inscription
dimanche 6 janvier 2013
Statut
Membre
Dernière intervention
22 janvier 2013
7 janv. 2013 à 21:44
7 janv. 2013 à 21:44
Je pense qu'il faut que je recherche dans l'array, les valeurs 0 et leurs attribuer la valeur précédente.
rirififiloulou3349
Messages postés
8
Date d'inscription
dimanche 6 janvier 2013
Statut
Membre
Dernière intervention
22 janvier 2013
8 janv. 2013 à 22:13
8 janv. 2013 à 22:13
Merci Alain pour le temps passer sur le sujet
je vais regarder ça demain
je vais regarder ça demain