Подсчет количества значений по каждому признаку
Существует следующий алгоритм:
$bd = mysql_query("SELECT * FROM list GROUP BY class");
while ($myrow = mysql_fetch_assoc($bd))
{
$res = $myrow['class'];
$lec = 0; $sem = 0; $lab = 0;
$bd2 = mysql_query("SELECT * FROM list WHERE class='$res'");
while ($myrow2 = mysql_fetch_assoc($bd2))
{
$type = $myrow2['type'];
if($type == 'Лекция') {
$lec = $lec + $myrow2['count_hours'];
echo $lec.' часов ';
}
if($type == 'Семинар') {
$sem = $sem + $myrow2['count_hours'];
echo $sem.' часов ';
}
if($type == 'Лабораторная') {
$lab = $lab + $myrow2['count_hours'];
echo $lab.' часов ';
}
echo $res = $myrow2['class'].' ';
echo $type = $myrow2['type'].' ';
echo $rest = $myrow2['discipline']."<br>";
}
}
Он подсчитывает суммирует часы по всем предметам одной группы. А как сделать так, чтобы он суммировал часы по каждому предмету каждой группы? Предметы получается нужно как то разделить. Как то реализовать через if else? Поместить блок с расчетом в оператор if else, и чтоб он проверял старое значение с новым. В случае если предметы не совпадают, то обнулять переменные и делать подсчет заново. Как так на практике реализовать....
Результат работы алгоритма:
P.S. Через агрегатные функции реализовать не получается. http://sqlfiddle.com/#!9/726d9/4/0