IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

calcul du total en php mysql


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    455
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 455
    Points : 109
    Points
    109
    Par défaut calcul du total en php mysql
    Bonjour,
    J'ai un petit problème car j'ai un tableau qui est celui là
    Dates 1 2 3 4 5
    2009-04-24 10 6 7 3 1
    2009-04-25 11 10 1 2 1
    TOTAL ??????????????????????????????????????

    et moi ce que je veu c'est sa:
    Dates 1 2 3 4 5
    2009-04-24 10 6 7 3 1
    2009-04-25 11 10 1 2 1
    TOTAL 22 18 11 9 7
    mais je sai pas comment mis prendre pour pour afficher le résultat par collonne
    sachant que mon tableau ce parcour comme sa --->
    j'ai une date et sa fait ex: 2009-04-24 j+1, j+2, j+3 etc..
    après j'ai une autre date 2009-04-25 j+1, j+2, j+3 etc..
    tous ces résultat sorte de ma tables my sql
    et mon code est en php

    je vous montre mon code si sa peu vous aidé pour m'aider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    	$query = "SELECT DISTINCT customers_id, customers_date_ins, customers_from FROM customers WHERE customers_id>='0' " . $custom . " GROUP BY customers_date_ins ORDER BY customers_date_ins asc ";
    	$result = mysql_query($query);
     
    	while($row = mysql_fetch_assoc($result)) {
    		$custom_date = $row["customers_date_ins"];
    		echo "</tr><tr style=\"text-align: center;\"><td width=\"100\">" . $custom_date . "</td>\r\n";
     
    		for ($i=1; $i<=5; $i++) { 
    			$com_dat = strtotime($custom_date. '+' .$i. 'days'); 
    			$endDate = date('Y-m-d', $com_dat);
     
    			$query_comm = "SELECT count(IFNULL(co.comm_status,'0')) AS Nb_comm FROM customers cu inner JOIN comm co ON cu.customers_id=co.customers_id WHERE cu.customers_date_ins = '".$custom_date."'  and cu.customers_from like '%".$presta."%' and co.comm_status ='1' and co.comm_date ='".$endDate."'  ";
    			$result_com = mysql_query($query_comm);
     
    			while($row1 = mysql_fetch_assoc($result_com)) {
    				$comm_nb = $row1["Nb_comm"];
    				echo "<td width=\"100\">" . $comm_nb . "</td>\r\n";
     
    			}
    		}
    	}
    	echo "</tr><tr style=\"text-align: center;\"><td width=\"100\">TOTAL</td>\r\n";
    Merci de votre aide car là je vois vraiment pas comment faire au moin es-ce possible???

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il suffit d'additionner les resultats dans un tableau classé par colonne.

    Au passage j'ai retiré le while qui ne sert pas puisque le COUNT donne forcemment une seule ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $row1 = mysql_fetch_assoc($result_com)
    $comm_nb = $row1["Nb_comm"];
    echo "<td width=\"100\">" . $comm_nb . "</td>\r\n";
    $total[$i] +=  $comm_nb;
    }
    }
    echo '</tr><tr style="text-align: center;"><td width="100">TOTAL</td>'."\r\n";
    foreach($total as $value) {
    echo '<td>' . $value . '</td>';
    }
    echo '</tr>';

  3. #3
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    455
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 455
    Points : 109
    Points
    109
    Par défaut
    OK Merci mais sa marche pas sa me mets une erreur

    Parse error: parse error in M:\stats_globales2.php on line 97
    et la ligne 97 est ce bout là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $comm_nb = $row1["Nb_comm"];
    dont je voit pas l'erreur de plus si j'enlève le while en laissant mon code d'avent sa me mets ce message d'erreur:
    Parse error: parse error in M:\stats_globales2.php on line 96
    et la ligne 96 c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $row1 = mysql_fetch_assoc($result_com) {
    donc j'ai remis le while comme sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    			while($row1 = mysql_fetch_assoc($result_com)) {
    				$comm_nb = $row1["Nb_comm"];
    				$total[$i] +=  $comm_nb;
    			}
    		}
    	}			echo '</tr><tr style="text-align: center;"><td width="100">TOTAL</td>'."\r\n";
    			foreach($total as $value) {
    				echo '<td>' . $value . '</td>';
    			}
    				echo '</tr>';
    et les totaux sont juste mais par contre j'ai plus les données
    Dates 1 2 3 4 5
    2009-04-24
    2009-04-25
    TOTAL 21 16 8 5 2
    et sa me met ce message d'erreur
    Notice: Undefined offset: 5 in M:\stats_globales2.php on line 99
    et la ligne 99 est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $total[$i] +=  $comm_nb;
    et franchement je vois pas l'erreur?

  4. #4
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    455
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 455
    Points : 109
    Points
    109
    Par défaut
    Méaculpa

    j'avais oublié de rajouter ce bout-là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<td width=\"100\">" . $comm_nb . "</td>\r\n";
    en tous cas merci beaucoups

    Mais par contre sa me mets toujours
    Notice: Undefined offset: 1 in M:\stats_globales2.php on line 100
    qui est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $total[$i] +=  $comm_nb;

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pour le Parse Error, il manque un point virgule dans mon code à la premiere ligne.

    Pour le undefined, tu peux définir $total au début de ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $total = array(1=>0, 2=>0, 3=>0, 4=>0, 5=>0);

  6. #6
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    455
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 455
    Points : 109
    Points
    109
    Par défaut
    Oulla le ; je l'avais zappé celui là

    enffette pour le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $total = array(1=>0, 2=>0, 3=>0, 4=>0, 5=>0);
    là j'ai montré que 5 collone mais envrai il y en à 70

    donc ce serai mieu si je fesai comme sa:mais sa marche pas

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux faire comme ca alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    isset($total[$i]) ? $total[$i] += $comm_bd : $total[$i] = $comm_bd;
    en francais : si on a déja donné une valeur à $total[$i], on additionne la valeur en cours, sinon, on le défini avec la valeur en cours

  8. #8
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    455
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 455
    Points : 109
    Points
    109
    Par défaut
    ok parfait sa marche super bien merci

    mais es-ce que tu pourrai juste m'expliquer le dernier bout de code que tu ma donné car j'ai pas tou bien compris Merci

    Bonne journée

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    L'explication c'est la phrase que j'ai mise en dessous.

  10. #10
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    455
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 455
    Points : 109
    Points
    109
    Par défaut
    oups

    ok Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Calcul avec PHP Mysql
    Par l1738 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/05/2015, 13h24
  2. [MySQL] Optimisation de scripts PHP/MySQL
    Par DgG dans le forum PHP & Base de données
    Réponses: 368
    Dernier message: 20/11/2013, 18h59
  3. [MySQL] Impasse totale de PHP/Mysql sur Vista
    Par ixterm dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 11/02/2009, 18h29
  4. [MySQL] Calculer l'âge à l'aide de php/mysql
    Par mathieu3392 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 21/04/2008, 14h43
  5. [MySQL] Calculs en PHP / MySQL
    Par pasbonte dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 30/03/2008, 19h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo