- Автор темы
- #1
Предисловие в кратце:
У меня есть относительно крупная БД и запрос который формирует статистику из нее.
Я выполняю его через WorkBench на сервере с БД, запрос выполняется по времени примерно 20 - 30 минут и результат выводится в файл для последующего анализа.
Вопрос:
Как составить страницу автоматизирующую данное действие?
Функции формы примерно такие:
- Если isset($_POST[QueryFormName]); то обработка формы.
-- В этот момент выводится прогресс бар на время примерно 10 минут
-- Обновляем страницу, если запрос не выполнился, то еще раз прогресс бар на 10 минут
-- Если запрос выполнился то отправляем файл на скачку в браузер и выводим его же содержимое на страницу.
- Если запроса из формы нет то выводим форму с name = "QueryFormName"
Из всего этого я знаю только самое примитивное:
- выполнение условий (обработка если запрос есть или вывод формы если запроса нет)
- Упаковка файла в архив и передача его на скачивание
- Вывод файла в браузер построчно (без глюков когда выводится весь текст в одну строку по возможности)
Остались только задачи:
- Как вывести прогресс бар (код максимально проще, минимум строк кода)
- Как узнать что запрос еще в процессе выполнения?
Или может быть изменить эти 2 задачи в одну:
Прогресс бар пока выполняется запрос, но на сколько я знаю это не возможно т.к. сам элемент выполняется на стороне клиента и он понятия не имеет что происходит с самим запросом который выполняет php с mysql еще до того как передать данные в MySQL.
Ну и на последок:
Если кто сталкивался с подобным, какие подводные камни (возможно нужно применить до всего этого ini_set(timeout) до того как все это начнет работать )?
У меня есть относительно крупная БД и запрос который формирует статистику из нее.
Я выполняю его через WorkBench на сервере с БД, запрос выполняется по времени примерно 20 - 30 минут и результат выводится в файл для последующего анализа.
Вопрос:
Как составить страницу автоматизирующую данное действие?
Функции формы примерно такие:
- Если isset($_POST[QueryFormName]); то обработка формы.
-- В этот момент выводится прогресс бар на время примерно 10 минут
-- Обновляем страницу, если запрос не выполнился, то еще раз прогресс бар на 10 минут
-- Если запрос выполнился то отправляем файл на скачку в браузер и выводим его же содержимое на страницу.
- Если запроса из формы нет то выводим форму с name = "QueryFormName"
Из всего этого я знаю только самое примитивное:
- выполнение условий (обработка если запрос есть или вывод формы если запроса нет)
- Упаковка файла в архив и передача его на скачивание
- Вывод файла в браузер построчно (без глюков когда выводится весь текст в одну строку по возможности)
Остались только задачи:
- Как вывести прогресс бар (код максимально проще, минимум строк кода)
- Как узнать что запрос еще в процессе выполнения?
Или может быть изменить эти 2 задачи в одну:
Прогресс бар пока выполняется запрос, но на сколько я знаю это не возможно т.к. сам элемент выполняется на стороне клиента и он понятия не имеет что происходит с самим запросом который выполняет php с mysql еще до того как передать данные в MySQL.
Ну и на последок:
Если кто сталкивался с подобным, какие подводные камни (возможно нужно применить до всего этого ini_set(timeout) до того как все это начнет работать )?