Page 1 sur 1

Requete sur les date

Posté : 03 mars 2009, 16:43
par stefane321
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?

Posté : 03 mars 2009, 17:14
par Ryle
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