Page 1 sur 1

Initialiser les mois dan sun table pour des stats mensuelles

Posté : 28 mai 2012, 19:58
par serval92
Bonjour à tous.

J'ai créé un tableau me permettant de faire des graphiques à base de barres à l'aide de Milkchart.
Je fais donc la requête suivante (je suis sur Joomla) :
$db=JFactory::getDBO();
$query =" SELECT MONTH(rapport_date) mois, COUNT(rapport_nature) nombre FROM #__cck_store_form_rapports";
$query.=" WHERE rapport_nature=\"$stat_nature\" AND YEAR(rapport_date)=\"$stat_annee_1\" GROUP BY MONTH(rapport_date)"; 
print_r($query);
$db->setQuery($query);
$article = $db->loadAssocList();
Mon souci, lorsque la requête ne me retourne aucune ligne pour un mois donné, le graphique se décale sur la gauche.
Je voulais donc savoir comment initialiser mes mois à "0", puis ensuite leur attribuer la valeur voulue.

Je vous remercie de votre attention.

Re: Initialiser les mois dan sun table pour des stats mensue

Posté : 28 mai 2012, 20:06
par xTG
Faudrait voir l'array que tu exploites.
Ensuite suivant sa tête on rajoutes les mois manquants.
En gros un parcours de l'array et rajouts d'index quand il faut.

Re: Initialiser les mois dans un table pour des stats mensue

Posté : 28 mai 2012, 20:47
par serval92
Bonjour xTG, et merci de nouveau de te soucier de mon cas.

Voici l'Array (sachant que j'en ai fait un seul, pour l'exemple) :
Array ( [0] => Array ( [mois] => 5 [nombre] => 1 ) )

Dans mon graphique, la barre se retrouve en janvier, au lieu de mai...

Voici mon tableau :
<table id="chart">
    <thead>
    <tr>
    <th><?php echo $stat_nature ?> - <?php echo $stat_annee_1; ?></th>
    </tr>
    </thead>
    <tbody>
	<?php for ($i=0; $i<12; $i++) { ?>
	<tr>
		<td>
			<?php echo $article[$i]['nombre'] ?>
		</td>
	</tr>
	<?php } ?>
	
    </tbody>
    <tfoot>
    <tr>
<td>Janvier</td>
<td>Février</td>
<td>Mars</td>
<td>Avril</td>
<td>Mai</td>
<td>Juin</td>
<td>Juillet</td>
<td>Août</td>
<td>Septembre</td>
<td>Octobre</td>
<td>Novembre</td>
<td>Décembre</td>
    </tr>
    </tfoot>
    </table>
Merci encore.

Re: Initialiser les mois dan sun table pour des stats mensue

Posté : 28 mai 2012, 21:51
par xTG
On peut faire un truc du genre dans ce cas :
$moisBdd = array( 0 => array( 'mois' => 5, 'nombre' => 1) );
$moisGraph = array();
reset($moisBdd);
for($i=1; $i<=12; $i++){
  $current = current($moisBdd);
  if( $current['mois'] == $i ){
    $moisGraph[] = $current;
    next($moisBdd);
  }else{
    $moisGraph[] = array( 'mois' => $i, 'nombre' => 0);
  }
}
Je te renvoi à la doc en cas de fonction non comprise. ;)

Re: Initialiser les mois dan sun table pour des stats mensue

Posté : 29 mai 2012, 09:18
par serval92
Bonjour xTG.

Un grand merci à toi, mon graph fonctionne parfaitement.
Si tu as besoin de conseils en PHP, fais-moi signe :wink:

Merci encore.