Nombre de résultat par utilisateurs

ViPHP
ViPHP | 2291 Messages

12 mars 2007, 20:56

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
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

12 mars 2007, 20:59

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 2291 Messages

12 mars 2007, 21:25

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+
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

12 mars 2007, 21:35

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 2291 Messages

12 mars 2007, 21:37

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
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

12 mars 2007, 21:40

Ta requête fonctionne ? :-k

J'avoue être surpris :shock:

Bon bah tant mieux pour toi ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 2291 Messages

12 mars 2007, 22:13

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.



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