SELECT par mois

ViPHP
ViPHP | 2291 Messages

06 févr. 2007, 11:54

Bonjour,

Je suis occupée à faire un fichier qui reprend le montant de 4 mois et je m'y prend comme ceci
// montant mois de Janvier 2007//

      $sql = "SELECT SUM(prix) as montant FROM prestation WHERE YEAR(date) = 2007 AND MONTH(date) = 1 ";
      $somme = mysql_query($sql) or die ('Erreur : '.mysql_error() );

      $detail_01_07 = mysql_fetch_assoc($somme);

                                    // montant mois de décémbre 2006//

      $sql = "SELECT SUM(prix) as montant FROM prestation WHERE YEAR(date) = 2006 AND MONTH(date) = 12 ";
      $somme = mysql_query($sql) or die ('Erreur : '.mysql_error() );

      $detail_12 = mysql_fetch_assoc($somme);

                                     // montant mois de Novembre 2006//

      $sql = "SELECT SUM(prix) as montant FROM prestation WHERE YEAR(date) = 2006 AND MONTH(date) = 11 ";
      $somme = mysql_query($sql) or die ('Erreur : '.mysql_error() );

      $detail_11 = mysql_fetch_assoc($somme);

                                    // montant mois de Octobre 2006//

      $sql = "SELECT SUM(prix) as montant FROM prestation WHERE YEAR(date) = 2006 AND MONTH(date) = 10 ";
      $somme = mysql_query($sql) or die ('Erreur : '.mysql_error() );

      $detail_10 = mysql_fetch_assoc($somme);

                                    // montant mois de Septembre 2006//

      $sql = "SELECT SUM(prix) as montant FROM prestation WHERE YEAR(date) = 2006 AND MONTH(date) = 9 ";
      $somme = mysql_query($sql) or die ('Erreur : '.mysql_error() );

      $detail_09 = mysql_fetch_assoc($somme);
Bon ça fonctionne nickel mais je me dit qu'il doit surement avoir un moyen de ne pas faire une requete pour chaque mois :?:

D'avance merci
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

06 févr. 2007, 11:58

Je doute que ta requête soit valide,
compte tenu de l'utilisation erronée d'un champ date
alors qu'il s'agit d'un mot réservé...

Je vais donc considérer que tu disposes des champs mois et annee :
$sql = "SELECT SUM(prix) as montant, mois FROM prestation WHERE annee = 2006 GROUP BY mois"; 

ViPHP
ViPHP | 2291 Messages

06 févr. 2007, 12:05

Je doute que ta requête soit valide,
compte tenu de l'utilisation erronée d'un champ date
alors qu'il s'agit d'un mot réservé...

Je vais donc considérer que tu disposes des champs mois et annee :
$sql = "SELECT SUM(prix) as montant, mois FROM prestation WHERE annee = 2006 GROUP BY mois"; 
Effectivement je récupére la valeur du mois a partir du champs date de ma TABLE qui reprendre bien le jour, le mois et l'année.
Mais je te certifie que ma requete fonctionne
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

06 févr. 2007, 12:07

Ça marche peut-être, mais c'est mal !!! :evil: :non:

ViPHP
ViPHP | 2291 Messages

06 févr. 2007, 12:09

Ça marche peut-être, mais c'est mal !!! :evil: :non:
:oops: Et comment je devrais m'y prendre :?:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

06 févr. 2007, 12:16

Ben ??? :shock:
En renommant ton champ, tout simplement !

dunbar_date, par exemple. ;)

Le tout est que tu n'utilises pas un mot réservé pour nommer tes champs.
date() étant une fonction PHP et date un type de données MySQL, c'est un mot réservé.

ViPHP
ViPHP | 2291 Messages

06 févr. 2007, 12:20

Ben ??? :shock:
En renommant ton champ, tout simplement !
:oops:

Merci
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

06 févr. 2007, 12:32

:oops:
C'est dur, le matin, hein ?... ;)

ViPHP
ViPHP | 2291 Messages

06 févr. 2007, 12:34

:oops:
C'est dur, le matin, hein ?... ;)
Si il n'y avait que le matin :wink:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.