сам запрос тоже очень странный (хотя это не должно приводить к упоминяемой ошибке(
Misha v.3 21.02.2008 19:05
т.к. идёт группировка по дню, но при этом нет фильтра по году+месяцу. если в таблице содержатся данные не только за один месяц, то получается бред.
понять суть вашего кода, чтобы помочь оптимизировать, сложно. расскажите что он делает (смысл, а не то что он выводит табличку где в столбцах дни, а в строках фамилии). что в ячейках (то что там '+' или ' ' видно, в чем их смысл?)? что такое $en? зачем вы разбиваете $ca.time перед созданием даты? что такое $sdate и зачем объект на её основе делается много раз?
мне кажется что заниматься циклами с двиганьем даты тут незачем.
достаньте вторым запросом из БД хеш с ключами DAYOFMONTH(time).
далее делайте menu по чувакам и внутри цикл от 1 до последнего дня месяца и если в хеше с ключем равным переменной цикла что-то есть -- пишите '+'.