Requete sur 12 mois

Mammouth du PHP | 514 Messages

29 août 2008, 14:37

Bonjour,

j'aimerais faire une requête permettant, depuis un champ date, de renvoyer un tableau du type :

janvier | fevrier | mars | avril ...

avec un résultat pour chaque colonne.

Je me demande si je n'ai pas déjà fait ça, mais la mémoire me fait défaut ...

Pouvez vous m'aider ?

Merci à vous.
Ne jamais repousser à demain ce qu'on peut faire après demain ...

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

29 août 2008, 15:43

Moi j'en ai un :
<?php
// Préparation de la Base de données test :
$scriptBD = "
CREATE TABLE IF NOT EXISTS test.ventes (
  dateEffet datetime NOT NULL,
  montant double NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
";
//
$resSQL = mysql_query($scriptBD, mysql_connect("localhost", "root", "")) or die (mysql_error());
//
$scriptBD = "
REPLACE INTO test.ventes (dateEffet, montant) VALUES 
('2008-01-10 00:00:00', 1500),
('2008-01-20 00:00:00', 2000),
('2008-02-10 00:00:00', 500),
('2008-02-20 00:00:00', 3000),
('2008-04-10 00:00:00', 4000),
('2008-04-15 00:00:00', 5500),
('2008-04-20 00:00:00', 8000),
('2008-07-10 00:00:00', 9000),
('2008-07-20 00:00:00', 10000);
";
//
$resSQL = mysql_query($scriptBD, mysql_connect("localhost", "root", "")) or die (mysql_error());
//
//
// Liste des mois nommés en français
$mois = array(1=>"Janvier", 2=>"Février", 3=>"Mars", 4=>"Avril", 5=>"Mai", 6=>"Juin",
7=>"Juillet", 8=>"Août", 9=>"Septembre", 10=>"Octobre", 11=>"Novembre", 12=>"Décembre",);
//
// Requête SQL d'extraction des données : Chiffres d'affaires mensuels de l'année en cours
$sql = "
select month(dateEffet) as mois, sum(montant) as ca 
from test.ventes 
where year(dateEffet) = year(Now()) 
group by month(dateEffet)
";
$resSQL = mysql_query($sql, mysql_connect("localhost", "root", "")) or die (mysql_error());
//
$data_mois = array();
while ($resSQL && $row = mysql_fetch_assoc($resSQL))
{
	// Stockage dans le tableau : ca/mois
	$numMois = $row["mois"];
	$data_mois[$numMois] = $row["ca"];
}
//
// Affichage de la table HTML : Chiffres d'affaires par mois
echo "<table border='1'><tr>";
foreach($mois as $numMois=>$nomMois)
{
	echo "<th>$nomMois</th>"; // Entête
}
echo "</tr><tr>";
foreach($mois as $numMois=>$nomMois)
{
	echo "<td>";
	if (isset($data_mois[$numMois]))	echo $data_mois[$numMois]; // Données
	echo "</td>";
}
echo "</tr></table>";
?>
Bonne lecture :wink:
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène