Bonjour,
j'ai créé un array avec une boucle qui liste les pages vus en récupérant les données de ma bd. Voici le résultat :
0H - 1H : 0 page vue
1H - 2H : 0 page vue
2H - 3H : 0 page vue
3H - 4H : 0 page vue
4H - 5H : 0 page vue
5H - 6H : 0 page vue
6H - 7H : 0 page vue
7H - 8H : 0 page vue
8H - 9H : 0 page vue
9H - 10H : 0 page vue
10H - 11H : 0 page vue
11H - 12H : 0 page vue
12H - 13H : 0 page vue
13H - 14H : 0 page vue
14H - 15H : 0 page vue
15H - 16H : 0 page vue
16H - 17H : 0 page vue
17H - 18H : 0 page vue
18H - 19H : 0 page vue
19H - 20H : 0 page vue
20H - 21H : 0 page vue
21H - 22H : 0 page vue
22H - 23H : 0 page vue
23H - 24H : 0 page vue
Voici le code source de mon array :
<?php
if (!isset($_POST['jour']) || !isset($_POST['mois']) || !isset($_POST['annee'])) {
$date_jour = date("Y-m-d");
}
else {
if (empty($_POST['jour']) && empty($_POST['mois']) && empty($_POST['annee'])) {
$date_jour = date("Y-m-d");
}
else {
$date_jour = $_POST['annee'].'-'.$_POST['mois'].'-'.$_POST['jour'];
}
}
// on déclare un tableau ($visite_par_heure) qui aura 24 clés : de 0 à 23, chaque élément du tableau contiendra le nombre de pages vues pendant une tranche horaire (à la clé 0, on aura le nombre de pages vues entre 00:00 et 00:59:59)
$visite_par_heure = array();
$sql = 'SELECT date FROM materiel WHERE date LIKE "'.$date_jour.'%" AND pseudo="'.$_SESSION['pseudo'].'" ORDER BY date ASC';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($result)) {
$date=$data['date'];
sscanf($date, "%4s-%2s-%2s %2s:%2s:%2s", $date_Y, $date_m, $date_d, $date_H, $date_i, $date_s);
if ($date_H < "10"){
$date_H = substr($date_H, -1);
}
$visite_par_heure[$date_H]=$visite_par_heure[$date_H]+1;
}
$total_pages_vu = mysql_num_rows($result);
mysql_free_result($result);
sscanf($date_jour, "%4s-%2s-%2s %2s:%2s:%2s", $date_Y, $date_m, $date_d, $date_H, $date_i, $date_s);
// on affiche le nombre de pages vues en fonction des tranches horaires
echo '<p><b><br />Les statistiques du '.$date_d.'/'.$date_m.'/'.$date_Y.' :</b><br /><br />';
for($i = 1; $i <= 24; $i++) {
$j = $i-1;
if (!isset($visite_par_heure[$j])) {
?><u><? echo $j.'H - '.$i.'H :</u> 0 page vue</u><br />';
}
else {
?><u><? echo $j.'H - '.$i.'H :</u> '.$visite_par_heure[$j].' pages vues<br />';
}
}
Comme ce n'est pas très esthétique je voudrais transformer ça en un array de ce genre pour ensuite l'intégrer dans un graphique en flash :
<?php
$chart[ 'chart_data' ] = array (
array ( "", "".0_1.", "1-2h", "2-3h", "4-5h"// etc etc
),
array ( "Pages vues", "".$nb_page_0_1h."", "".$nb_page_0_2."" ) // etc etc
);
Je pense qu'il faut une boucle for pour lister les dates mais je n'y arrive pas. Quelqu'un pourrait m'aider ?
Merci d'avance.