Page 1 sur 1

Nombre de résultat par utilisateurs

Posté : 12 mars 2007, 20:56
par dunbar
Bonsoir,

Un pt truc :oops: j'ai une table avec des encodages les encodages sont effectuée par des utilisateurs (3) je voudrais affichées par mois le nombres d'encodage de chaque utilisateur j'arrive pour un mais pas pour les trois :-k
Mon code
$sql = "SELECT date_encodage,technicien,TA,
              MONTH(date) AS mois
              FROM prestation
              WHERE date BETWEEN '".$dateDebut."' AND '".$dateFin."'
              GROUP BY MONTH(date)
              ORDER BY IDot DESC
              ";
      $result = mysql_query($sql) or die ('Ne trouve pas tout les champs dans la TABLE : '.mysql_error());
      $total = mysql_num_rows($result);

D'avance merci

Posté : 12 mars 2007, 20:59
par zeus
Tous les champs que tu veux utiliser dans le SELECT doivent se trouver dans le GROUP BY.

Dans ton cas, si tu veux avoir la liste des techniciens et la date, il faut ses 2 critères dans le GROUP BY

Essaye :

Code : Tout sélectionner

SELECT date_encodage,technicien,TA, MONTH(date) AS mois FROM prestation WHERE date BETWEEN '".$dateDebut."' AND '".$dateFin."' GROUP BY date_encodage, technicien, TA, MONTH(date) ORDER BY IDot DESC

Posté : 12 mars 2007, 21:25
par dunbar
Tous les champs que tu veux utiliser dans le SELECT doivent se trouver dans le GROUP BY.

Dans ton cas, si tu veux avoir la liste des techniciens et la date, il faut ses 2 critères dans le GROUP BY

Essaye :

Code : Tout sélectionner

SELECT date_encodage,technicien,TA, MONTH(date) AS mois FROM prestation WHERE date BETWEEN '".$dateDebut."' AND '".$dateFin."' GROUP BY date_encodage, technicien, TA, MONTH(date) ORDER BY IDot DESC
Salut :wink:

Merci pour ton aide (encore une fois) voici mon code
 $sql = "SELECT date_encodage,technicien,TA,
              MONTH(date) AS mois, COUNT(TA) AS TA
              FROM prestation
              WHERE date BETWEEN '".$dateDebut."' AND '".$dateFin."'
              GROUP BY  technicien,  MONTH(date)
              ORDER BY MONTH(date),technicien
              ";
      $sql_tech = mysql_query($sql) or die ('Erreur : '.mysql_error() );
A+

Posté : 12 mars 2007, 21:35
par zeus
Pense bien à nous mettre l'erreur que tu obtiens ;)

Prends bien le temps de lire les réponses qu'on te donnes ;)

TOUT ce qui est dans le SELECT doit être dans le GROUP BY

Posté : 12 mars 2007, 21:37
par dunbar
Pense bien à nous mettre l'erreur que tu obtiens ;)

Prends bien le temps de lire les réponses qu'on te donnes ;)

TOUT ce qui est dans le SELECT doit être dans le GROUP BY
J'ai aucune erreur tout fonctionne nickel :-k
Mais je me suis probablement mal expliquer, je voulais le total d'encodage par technicien, et par mois

Posté : 12 mars 2007, 21:40
par zeus
Ta requête fonctionne ? :-k

J'avoue être surpris :shock:

Bon bah tant mieux pour toi ;)

Posté : 12 mars 2007, 22:13
par dunbar
Si si voici tout le fichier.
$anneeEnCours    = date('Y'); // Année en cours
$anneePrecedente = $anneeEnCours ; // l'an dernier

$dateDebut       = $anneePrecedente.'-03-01'; // on va du 1er janvier de l'an dernier .....
$dateFin         = $anneeEnCours . '-12-31'; // jusqu'au 31 décembre de cette année


      $sql = "SELECT date_encodage,technicien,TA,
              MONTH(date) AS mois, COUNT(TA) AS TA
              FROM prestation
              WHERE date BETWEEN '".$dateDebut."' AND '".$dateFin."'
              GROUP BY  technicien, MONTH(date)
              ORDER BY IDot DESC, technicien
              ";
      $sql_tech = mysql_query($sql) or die ('Erreur : '.mysql_error() );



       $month_fr = array  (	1 	=> 'Janvier',
							2 	=> 'Février',
							3 	=> 'Mars',
							4 	=> 'Avril',
							5 	=> 'Mai',
							6 	=> 'Juin',
							7 	=> 'Juillet',
							8 	=> 'Aout',
							9 	=> 'Septembre',
							10 	=> 'Octobre',
							11 	=> 'Novembre',
							12 	=> 'Décembre'
							);



         /************Début de mon tableau***********************/

         echo '<center>
              <table cellspacing="1" border="1"  style="border: 1px solid #6699CC">'."\n";
         echo '<tr>
		       <td style="border: 1px ridge #6699CC" background="style/imgs/fd_bt_1.gif"  align="center" colspan="3">
			   <b><font size="1">Nombre(s) des prestation(s) déjà effectuée(s) par technicien.</font></b></td>
	           </tr><tr>';
         echo '<td style="border: 1px ridge #6699CC" background="style/imgs/fd_bt_1.gif" width="83" align="center">
			   <b><font size="1">Mois</font></b></td>';
         echo '<td style="border: 1px ridge #6699CC" background="style/imgs/fd_bt_1.gif" width="364" align="center">
			   <b><font size="1">Nombre(s) d'installation(s)</font></b></td>';
		 echo '<td style="border: 1px ridge #6699CC" background="style/imgs/fd_bt_1.gif" width="56" align="center">
			   <b><font size="1">Technicien</font></b></td>';
         echo '</tr>'."\n";
    // lecture et affichage des résultats .
    while($row = mysql_fetch_array($sql_tech)){

        /*TABLEAU pour l'année du mois de l'encodage*/

        $date = $row['date_encodage'];
        list($annee, $mois, $jour) = explode("-", $date);

         echo '<tr>';
         echo '<td style="border: 1px ridge #6699CC" align="left">'.$month_fr[$row['mois']].' '.$annee.'</td>';
         echo '<td style="border: 1px solid #6699CC; " align="center">il y à <b><font color="#FF0000">'.$row['TA'].'</font></b> prestation(s) effectuée(s).</td>';
         echo '<td style="border: 1px ridge #6699CC" align="center">'.$row['technicien'].'</td>';
         echo '</tr>'."\n";
    }
    echo '</table></center>'."\n";
    // fin du tableau.



?>