Tableau avec les mois et les années

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 : Tableau avec les mois et les années

Re: Tableau avec les mois et les années

par sirakawa » 16 oct. 2011, 11:38

<?PHP
/* la date mysql est YYYY-MM_DD*/
/* ma table de tests se nomme actes et a un seul champ DATE acte*/
date_default_timezone_set("Europe/Paris");
$annee_initiale = 2009;
$resultats = array();
for ($ligne = 1; $ligne <=12; $ligne ++)
{
for ($colonne = 1; $colonne <=5; $colonne ++)
{
$resultats [$ligne][$colonne] = 0;
}
}

mysql_connect("", "","");
mysql_select_db ("");
$requete = "select acte from actes";
$resultat = mysql_query($requete);
while ($ligne = mysql_fetch_array($resultat))
{
$date = $ligne[0];
$timedate = strtotime ($date);
$la_date = getdate($timedate);
$annee = $la_date['year'];
$mois = $la_date['mon'];
$colonne_annee = $annee-$annee_initiale;
$resultats[$mois][$colonne_annee]+=1;
}

print_r($resultats);
?>

Re: Tableau avec les mois et les années

par sirakawa » 15 oct. 2011, 13:58

oui ça me permettra d et'envoyer l'ensemble de mes cogitations

Re: Tableau avec les mois et les années

par Invité » 14 oct. 2011, 16:17

Bonjour,

Tout d'abord merci d'avoir répondu.

Je pense comprendre là démarche seulement mon gros problème, c'est la mise en exécution. Je voyais effectivement une une boucle dans une autre mais comment correctement importer mes données dans cette boucle, c'est là que je sèche.

Dans ta bdd, tu as autant de lignes avec la même date que d'actes, ou,bien une ligne par chaque date?

J'ai autant de lignes que d'actes.

2) Pour pouvoir écrire en colonne 1 les résultats de 2010...
$annee_initiale = 2009;


Ou donc le faire apparaître dans ma boucle?

Toutes les données de ton petit "3" doivent se mettre en variable avant ma boucle?

Pour avoir une critique plus précise, je peux t'envoyer mon fichier Php par courriel si tu veux.

merci encore.

Re: Tableau avec les mois et les années

par sirakawa » 14 oct. 2011, 14:42

Bjr
Dans ta bdd, tu as autant de lignes avec la même date que d'actes, ou,bien une ligne par chaque date?
1 Le tableau de résultats est un tableau à deux dimensions qu'il faut initialiser:
$resultats = array();
for ($ligne = 1;  $ligne <=12;  $ligne ++)
{
	for ($colonne = 1; $colonne <=5; $colonne ++)
	{
		$resultats [$ligne][$colonne] = 0;
	}
}
2) Pour pouvoir écrire en colonne 1 les résultats de 2010...
$annee_initiale = 2009;
3 la manipulation de la BDD:
a) Si la date est au format date de Mysql elle est sous la forme YYYY-MM-DD (http://dev.mysql.com/doc/refman/5.0/fr/using-date.html)
b) récupération de toutes les dates par un select : nom $date
c) conversion de cette date en timestamp par
$t_date = strtotime($date) 
d) récupérations desinformations utiles
$la_date = getdate($timedate);
e) la ligne est le mois numérique :
$mois = $la_date['mon'];
f) l'annee est
$annee = $la_date['year'];
g)
$resultats[$mois][$annee] +=1;
4) il ne reste plu qu'à exploiter le tableau résultats (minimum print_r($resultats); ou une double boucle))

Re: Tableau avec les mois et les années

par letroyen23 » 14 oct. 2011, 12:19

Aujourd'hui, j'ai

Année Mois Nombre
2010 12 28
2011 1 45
2011 2 38

et je souhaiterais :
2010 2011
1 45
2 38
3
4
..
12 28

Merci d'avance

Tableau avec les mois et les années

par letroyen23 » 14 oct. 2011, 12:15

Bonjour,

Je souhaite faire un tableau qui comptabilise des actes médicaux faits par mois et par année.

Je voyais ca comme ça, ma 1ere colonne indiquerait les années, ma 1 ligne indiquerait les mois et ensuite mon count se glisserait correctement dans chacune des bonnes cases. Débutant en Php, je ne m'y retrouve pas avec les tableaux. Les dates d'actes sont dans ma base de données MYSQL, mon champ s’appelle "date_acte".

En gros si "date_acte" est au 01/01/2011 alors mettre 1 dans la colonne JANVIER et la ligne 2011.

Merci d'avance.