насколько я помню, в одном из предыдущих постов я рекомендовал вам
Misha v.3 27.02.2008 11:11
1. объяснить что _делает_ ваш код и в чем его _смысл_ (ответ "выводит таблицу" не канает). без этого нормальная оптимизация невозможна. заодно расскажите (если хотите каких-либо советов вообще, хотя пока не похоже на это) сколько у вас строк в выводимой таблице и сколько столбцов.
2. я предлагал вам избавиться от while(...){тут создание и сдвиги дат}, а использовать ^for[iDay](1;$iLastDay){}. imho: двигать даты тут не нужно совершенно, но я не уверен, т.к. вы не раскрываете секреты вашего кода, а немного "оптимизировать" меняя имена переменных и выкидывая незначительные, не сильно влияющие на процесс операции смысла не много.
P.S. код мог перестать работать не только из-за того, что добавилось данных, но и из-за того, что хостер поставил/уменьшил лимит памяти.