Requete sur les date

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 : Requete sur les date

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

Requete sur les date

par stefane321 » 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?