Requete sur les date

Eléphant du PHP | 331 Messages

03 mars 2009, 16:43

Bonjour,

J'ai un site http://www.decoupez.com qui consiste a afficher des coupons rabais.

J'ai fait en sorte que quand un coupon est imprimé sa soit comptabilisé dans une table "photo_clic" la table a un champ date "date_clic"

Là je veux me faire un rapport d'impression par année, par mois et par semaine.

J'ai réussie à le faire par année avec cette requete:
$sql2 = "select id, nom_FR, image, DAYOFMONTH(date_debut) day, YEAR(date_debut) an, MONTH(date_debut) mois, duree, status from photos order by nom_FR ASC, ord_affiche ASC";

$result = @mysql_query($sql2);
while($row1=mysql_fetch_array($result))
{
	if(!empty($ids))
	{
		$ids.=','.$row1['id'];
	}
	else
	{
		$ids=$row1['id'];
	}
	$row2[$row1['id']]=$row1;
}
$sql = "select count(*) as qte,id_photo from photo_clic WHERE id_photo IN (".$ids.") GROUP BY id_photo ORDER BY qte DESC";
$result = @mysql_query($sql);

if(is_array($row2))
{

$total=0;
while( $row = mysql_fetch_array($result) )
 {
 $total +=$row['qte'];
  $productid = $row["id_photo"];
$photos=$row2[$productid][0];
Là j'aimerais avoir le total d'impression par mois et par semaine mais je ne sais pas comment faire.

Pouvez-vous m'aider svp?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

03 mars 2009, 17:14

Pour un résultat annuel, tu dois pouvoir simplifier en une seule requête :

Code : Tout sélectionner

SELECT COUNT(id_photo) AS qte, YEAR(date_debut) AS an from photos, photo_clic WHERE photos.id = id_photo
Tu peux procéder de la même manière pour les mois (MONTH()) ou les semaines (WEEK()) en ajoutant éventuellement une condition sur la date pour n'avoir que les mois ou les semaines d'une année spécifique...

Sinon, avec un traitement php, tu peux aussi tout récupérer en une seule requête, et ensuite faire le cumul de chaque année et de chaque mois avec php...

Code : Tout sélectionner

SELECT COUNT(id_photo) AS qte, YEAR(date_debut) AS an, MONTH(date_debut) AS mois, WEEK(date_debut) AS semaine from photos, photo_clic WHERE photos.id = id_photo
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...