Рональд Макдональд, согласен. Но в конкретно данной задаче он подходит т.к. задача состоит не в создании мега программы, а "кое-что посчитать". Т.е. простое и легко прикручивоемое)
m1kz, рекурсия много памяти занимать не будет т.к. как только скрипт доходит до setTimeout, работа функции закончена, переменные выходят из области видимости и удаляются чистильщиком. После чего через секунду setTimeout заново запускает эту же функцию, создавая идентичные переменные. Т.е. по сути это бесконечное создание и удаление одной и той же функции.
Это ответ, отправляется массив в формате Json, в котором содержится метка наличия ошибки и счётчик:
На самом деле можно упростить и выводить только один инкремент счётчика: echo $AllGet;
Просто в формате Json отправлять данные более правильно и к тому же false вы можете заменить на переменную, которая будет заменяться на true в случае ошибки получения данных из бд. Таким образом Js может проверять, если при получении данных была ошибка - выводить что то другое или значение по умолчанию.