PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 31-05-2010 13:30:57

theavengers
Membre
Inscription : 13-10-2009
Messages : 81

Affichage d'un tableau et fonction COUNT avec les dates du mois.

Bonjour à tous.

Me revoila avec une nouvelle question.  tongue
J'ai pour l'instant un COUNT  qui s'affiche suivant des choix fait au travers de menu déroulant, cela compte le nombre de fiches validées par opérateur suivant une date choisie . Voila ma requête :

  $req = mysql_query("SELECT COUNT(*) as Count FROM `prospect` WHERE valid ='1' AND operateur = '$operateur' AND date LIKE '%$annee-%$mois-$jour%'  " );

C'est pas très joli, il y a mieux, mais ça fonctionne.

J'aimerais donc faire maintenant un tableau avec les dates du jour suivant le mois choisi, qui afficherait le nombre de fiches validées ainsi que le nombre de fiches jetées (valid ='2'). Mais je ne vois pas du tout comment, à part reconstruire une requête pour chaque jour et chaque cellule. Avantage, j'ai un champ datetime...

Ex :
2010-05-25 validée 10 jetée 12
2010-05-26 validée 20 jetée 03
2010-05-27 validée 24 jetée 01
2010-05-28 validée 30 jetée 21

Un ARRAY avec un DISTINCT peut être ? Si vous pouviez m'aiguiller sur la marche à suivre, ça serait super. J'ai bcp de mal avec COUNT.

Dernière modification par theavengers (31-05-2010 13:32:46)

Hors ligne

#2 31-05-2010 14:20:27

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Affichage d'un tableau et fonction COUNT avec les dates du mois.

Saluton,
Je te conseille de ne pas utiliser de mots du langage SQL (Count) comme nom de table, colonne ou alias.
Pour ton problème, il te suffit d'ajouter le GROUP BY idoine sur le jour du mois à la fin de ta requête.
WITH ROLLUP devrait te permettre, en sus, de récupérer les totaux généraux.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 31-05-2010 14:27:01

theavengers
Membre
Inscription : 13-10-2009
Messages : 81

Re : Affichage d'un tableau et fonction COUNT avec les dates du mois.

Merci, je regarde tout cela desuite.

Hors ligne

#4 03-06-2010 10:39:54

theavengers
Membre
Inscription : 13-10-2009
Messages : 81

Re : Affichage d'un tableau et fonction COUNT avec les dates du mois.

Hello, bon maintenant, ça marche... mais il doit y avoir un moyen beaucoup moins gourmand en terme de ressources que l'amas de requête que j'ai fait pour chaque jour.
Une boucle par date du jour ? Ou une boucle simple jusqu'au 31 enieme jour quoi qu'il arrive...

$operateur = $_POST["operateur"];
$annee = $_POST["annee"];
$mois = $_POST["mois"];
$jour = $_POST["jour"];
$heure = $_POST["heure"];

//comptage des entrées pour le 01
  $requete="SELECT

  (SELECT COUNT(ID) AS Count FROM `prospect` WHERE operateur = '$operateur' AND date LIKE '%$annee-%$mois-01%'  AND valid ='1') AS champs1,
  (SELECT COUNT(ID) AS Count FROM `prospect` WHERE operateur = '$operateur' AND date LIKE '%$annee-%$mois-01%' AND valid in ('2','3','4') ) AS champs2,
  (SELECT COUNT(ID) AS Count FROM `prospect` WHERE operateur = '$operateur' AND date LIKE '%$annee-%$mois-01%' AND valid = '1' AND quest01 = 'oui' AND quest02 = 'oui' AND quest03 = 'rep01' ) AS champs3,
  (SELECT COUNT(ID) AS Count FROM `prospect` WHERE operateur = '$operateur' AND date LIKE '%$annee-%$mois-01%' AND valid = '1' AND quest01 = 'oui' AND quest02 = 'oui' AND quest03 in ('rep02','rep02','glace','rep03','autre') ) AS champs4,
  (SELECT COUNT(ID) AS Count FROM `prospect` WHERE operateur = '$operateur' AND date LIKE '%$annee-%$mois-01%' AND valid = '1' AND quest01 = 'oui' AND quest02 = 'non' AND quest05 in ('oui3mois','oui6mois','ouiannee') ) AS champs5,
  (SELECT COUNT(ID) AS Count FROM `prospect` WHERE operateur = '$operateur' AND date LIKE '%$annee-%$mois-01%' AND valid in ('1','2','3','4') ) AS champs6 ";
 

$resultat = mysql_query($requete);
$ligne = mysql_fetch_object($resultat);
echo $ligne->CHAMPS1;        
   
    echo "<tr><td class=td1> 01$madate</td>";
    echo '<td class=td1> ',$operateur,' </td>';
    echo "<td class=td1> $ligne->champs1 </td>";
    echo "<td class=td1> $ligne->champs2 </td>";
    echo "<td class=td1> $ligne->champs3 </td>";
    echo "<td class=td1> $ligne->champs4 </td>";
    echo "<td class=td1> $ligne->champs5 </td>";
    echo "<td class=td1> $ligne->champs6 </td></tr>";
//comptage des entrées pour le 02
  $requete="SELECT

  (SELECT COUNT(ID) AS Count FROM `prospect` WHERE operateur = '$operateur' AND date LIKE '%$annee-%$mois-02%'  AND valid ='1') AS champs1,
  (SELECT COUNT(ID) AS Count FROM `prospect` WHERE operateur = '$operateur' AND date LIKE '%$annee-%$mois-02%' AND valid in ('2','3','4') ) AS champs2,
  (SELECT COUNT(ID) AS Count FROM `prospect` WHERE operateur = '$operateur' AND date LIKE '%$annee-%$mois-02%' AND valid = '1' AND quest01 = 'oui' AND quest02 = 'oui' AND quest03 = 'rep01' ) AS champs3,
  (SELECT COUNT(ID) AS Count FROM `prospect` WHERE operateur = '$operateur' AND date LIKE '%$annee-%$mois-02%' AND valid = '1' AND quest01 = 'oui' AND quest02 = 'oui' AND quest03 in ('rep02','rep02','glace','rep03','autre') ) AS champs4,
  (SELECT COUNT(ID) AS Count FROM `prospect` WHERE operateur = '$operateur' AND date LIKE '%$annee-%$mois-02%' AND valid = '1' AND quest01 = 'oui' AND quest02 = 'non' AND quest05 in ('oui3mois','oui6mois','ouiannee') ) AS champs5,
  (SELECT COUNT(ID) AS Count FROM `prospect` WHERE operateur = '$operateur' AND date LIKE '%$annee-%$mois-02%' AND valid in ('1','2','3','4') ) AS champs6 ";
 

$resultat = mysql_query($requete);
$ligne = mysql_fetch_object($resultat);
echo $ligne->CHAMPS1;        
   
    echo "<tr><td class=td1> 02$madate</td>";
    echo '<td class=td1> ',$operateur,' </td>';
    echo "<td class=td1> $ligne->champs1 </td>";
    echo "<td class=td1> $ligne->champs2 </td>";
    echo "<td class=td1> $ligne->champs3 </td>";
    echo "<td class=td1> $ligne->champs4 </td>";
    echo "<td class=td1> $ligne->champs5 </td>";
    echo "<td class=td1> $ligne->champs6 </td></tr>";

Hors ligne

Pied de page des forums