Nombre de résultat par utilisateurs

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Nombre de résultat par utilisateurs

par dunbar » 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.



?>

par zeus » 12 mars 2007, 21:40

Ta requête fonctionne ? :-k

J'avoue être surpris :shock:

Bon bah tant mieux pour toi ;)

par dunbar » 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

par zeus » 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

par dunbar » 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+

par zeus » 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

Nombre de résultat par utilisateurs

par dunbar » 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