Здравствуйте.
Есть запрос типа
"SELECT DATE_FORMAT(time, '%H') H, COUNT(*) N FROM `statistics` WHERE user_id=70 AND time>=CURDATE() GROUP BY DATE_FORMAT(time, '%Y-%m-%d %H') ORDER BY
date ASC"
Нужно выводить статистику активности по часам.
В таком подходе проблем с пользователем, у кого высокая активность проблем нет (то есть если с полуночи 00 до текущего времени была активность каждый час, то все выведет корректно):
for($i = 0; $i < 24; $i = $i + 1){
$data = mysql_fetch_assoc($sql);
echo $chartdata['N'] .', ';
};
Но если у пользователя активность маленькая (из 24 часов только в нескольких была активность), то появляются проблемы.
Пробовал так исправить:
for($i = 0; $i < 24; $i = $i + 1){
$data = mysql_fetch_assoc($sql);
$hourg = $chartdata['H'];
$d = $chartdata['N'];
if($hourg==$i) {
echo $d .', ';
} else {
echo '0, ';
}
;}
Допустим, если у пользователя активность только в один час за весь день (и это было в 18:00) все равно данные выводятся только при первой итерации, далее становятся недоступны для использования. Здесь явно мало for
Буду благодарен за помощь