Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отображение статуса загрузки страницы. Как сделать, генерируется таблица в MySQL (около 10с) 
:(
    Опции темы
slang
Дата 8.6.2008, 18:10 (ссылка)   | (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 455
Регистрация: 7.3.2004

Репутация: -1
Всего: 0



Скрипт генерирует таблицу в БД около 10 секунд (при одном пользователе).
Пользователей может быть приличное количество (около сотни в один момент).
Вероятно часть из них будет выбрасывать по ошибке длительного выполнения скрипта.
Хочется, чтобы, если генерация таблицы не была завершена, произошло её удаление.
А также на время генерации таблицы вышел статус её генерации.

Как такое можно реализовать?


--------------------
Запчасти на иномарки www.avtograd55.ru.
Если есть время - зайдите и посоветуйте что исправить и что доработать.
PM MAIL WWW ICQ   Вверх
skyboy
Дата 8.6.2008, 18:42 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



зачем тебе под каждого пользователя генерировать таблицу?
PM MAIL   Вверх
Feldmarschall
Дата 8.6.2008, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Я бы на твоем месте занимался оптимизацией генерации
А если уж приспичит делать статус, то задвать вопрос в разделе, который имеет к этому отношение
PM   Вверх
Pokoinik
Дата 9.6.2008, 12:59 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 283
Регистрация: 17.3.2007
Где: /dev/null

Репутация: 2
Всего: 3



slang, разбить генерацию на части. на клиенте аяксом подгружать обработанные куски...


--------------------
ICQ: 490-993
Существует только 10 типов людей: те, которые понимают двоичную систему, и которые ее не понимают!!!
Опасайтесь людей верующих, ибо у них есть боги, которые им все прощают.

Делай или не делай! Никаких попробую!
Йода (Yoda), мастер-джедай
PM MAIL ICQ   Вверх
IZ@TOP
Дата 9.6.2008, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Pokoinik, тогда уж в стек и по крону задания исполнять.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
MoLeX
Дата 9.6.2008, 14:03 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Цитата(skyboy @  8.6.2008,  18:42 Найти цитируемый пост)
зачем тебе под каждого пользователя генерировать таблицу? 


Цитата(slang @  8.6.2008,  18:10 Найти цитируемый пост)
А также на время генерации таблицы вышел статус её генерации.

разбей на этапы



--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Feldmarschall
Дата 9.6.2008, 14:20 (ссылка)  | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Для всех любителей давать советы, как лучше удалить гланды через позвоночник:
http://forum.vingrad.ru/forum/topic-215740.html
читаем, думаем
PM   Вверх
IZ@TOP
Дата 9.6.2008, 14:30 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Feldmarschall, порой проще и быстрее решить проблему за счет новых мощностей, заодно повышая капитализацию smile


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Feldmarschall
Дата 9.6.2008, 14:38 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Я понимаю твой игривый тон, но здесь это не поможет.
Ты путаешь процентный тюнинг и кривые руки.
PM   Вверх
IZ@TOP
Дата 9.6.2008, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Feldmarschall, а оно и не нужно. Главное мы с тобой все поняли.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
slang
Дата 10.6.2008, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 455
Регистрация: 7.3.2004

Репутация: -1
Всего: 0



Feldmarschall, ну я так понимаю, вы сможете порекомендовать методы оптимизации генерации.
1. есть оригинальные таблицы (3 штук: тесты->вопросы->варианты ответов)
2. требуется получить таблицу, объединяющую все три таблицы
3. необходимо перемешать вопросы внутри теста
4. перемешать ответы внутри вопроса

делаю:
1. читаю информацию о тесте
2. записываю первую строку новой таблицы
3. читаю все вопросы (связанные с тестом, разумеется) в массив
4. перемешиваю вопросы
5. читаю все ответы (связанные с вопросами, разумеется) в массив
6. перемешиваю ответы
7. заполняю новую таблицу построчно, пробегая по массивам, где строка может быть вопросом или ответом (различается по содержимому поля).


Это сообщение отредактировал(а) slang - 10.6.2008, 18:41


--------------------
Запчасти на иномарки www.avtograd55.ru.
Если есть время - зайдите и посоветуйте что исправить и что доработать.
PM MAIL WWW ICQ   Вверх
Feldmarschall
Дата 10.6.2008, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



остановка алгоритма в п.2.
не требуется. никаких создавать таблиц.

На этом форуме очень много вопросов, вызванных непониманием элементарных основ работы баз данных. О нормальной форме представления нет ни малейшего. причем результатом часто становятся именно проблемы в производительности. 
но при этом хочется все равно - не меняя ничего архитектурно, просто сказать волшебное слово, чтобы все забегало. 
Шалишь, не выйдет.

Почти ничего из перечисленного делать заранее не нужно. зачем создавать таблицу, когда вопросы и тесты и так у нас есть?
зачем перемешивать вопросы заранее, когда это можно сделать перед показом?
зачем перемешивать ответы заранее, когда это можно сделать перед показом?



PM   Вверх
slang
Дата 10.6.2008, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 455
Регистрация: 7.3.2004

Репутация: -1
Всего: 0



Feldmarschall.
мне нужно перемешать вопросы и ответы единожды и сохранить этот порядок до окончания.
вопросы в основном тесте (так же как и варианты ответа) могут изменяться во время ответа на тест пользователем, при этом в уже открытом тесте должно остаться все как на момент генерации теста.
есть еще масса причин не использования основной базы для каждого тестируемого.
и стоит отметить, что я не спрашивал что мне необходимо получить в итоге, по этой причине и не отвечал на кучу "советов" типа "тебе это не надо, подумай что ты хочешь получить...".
я подумал, и получить мне нужно то, что написал, ни больше ни меньше - сгенерировать таблицу.


--------------------
Запчасти на иномарки www.avtograd55.ru.
Если есть время - зайдите и посоветуйте что исправить и что доработать.
PM MAIL WWW ICQ   Вверх
Feldmarschall
Дата 10.6.2008, 19:29 (ссылка) |  (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Цитата(slang @  10.6.2008,  19:14 Найти цитируемый пост)
по этой причине и не отвечал на кучу "советов" типа "тебе это не надо, подумай что ты хочешь получить...".

ну, если ты сам думать не хочешь, то мне-то это тем более не надо =)
продолжай настраивать баззу данных, гыгыгы


PM   Вверх
Fally
Дата 10.6.2008, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 17.8.2006
Где: Dahla

Репутация: 3
Всего: 4



Цитата(slang @  10.6.2008,  19:14 Найти цитируемый пост)
я подумал, и получить мне нужно то, что написал, ни больше ни меньше - сгенерировать таблицу. 

ещё бы лучше подумал, и генерировать таблицу бы не пришлось, тебе можно курсоры попробовать, и вообще, не напрягай PHP работой БД при этом в извращённой форме..

Это сообщение отредактировал(а) Fally - 10.6.2008, 19:53


--------------------
Прежде чем задать вопрос на форуме воспользуйтесь поиском.
user posted image
user posted image
PM MAIL   Вверх
Fortop
Дата 10.6.2008, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Цитата(slang @  10.6.2008,  19:14 Найти цитируемый пост)
мне нужно перемешать вопросы и ответы единожды и сохранить этот порядок до окончания.

Кто/что мешает это сделать?

Кто/что мешает получать всех ID вопросов для теста?
Кто/что мешает использовать shuffle()?

Кто/что мешает сохранить это в сессии? Или на худой конец - в базе в отдельном поле для конкретного пользователя?

Кто/что мешает сделать то же самое но для ответов по каждому из вопросов?

То же что и танцору?

ЗАЧЕМ генерировать таблицы?

Добавлено через 3 минуты и 46 секунд
Цитата(slang @  10.6.2008,  19:14 Найти цитируемый пост)
вопросы в основном тесте (так же как и варианты ответа) могут изменяться во время ответа

Почему?

Основное правило работы с БД - ID записи остается неизменным на все время существования записи и базы.
ID однозначно идентифицирует относительно постоянную часть записи.

Если ты хочешь кардинально изменить вопрос - создавай новую запись с новым ID. Точно так же надо поступать и с ответами.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
slang
Дата 24.9.2008, 18:35 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 455
Регистрация: 7.3.2004

Репутация: -1
Всего: 0



натолкнулся на свою тему smile
вообще то всё нормально работает в первоначальном виде. MySQL вешался, но вопрос решился с самим SQL сервером.

Кто/что мешает получать всех ID вопросов для теста?
 - мне нужен для каждого пользователя отдельный тест на основе оригинального теста, а не ID вопросов/ответов, которые как было сказано могут изменяться во время использования теста

ЗАЧЕМ генерировать таблицы?
 - а почему нет, если в тесте пользователя должны быть НЕ ID!!!!!, а полный вариант теста. по окончанию периода тесты уходят в архив в виде набора таблиц пользователей и являются самодостаточными.

Кто/что мешает сохранить это в сессии?
 - просто они не подходят для решения данной задачи по обоснованным причинам

Или на худой конец - в базе в отдельном поле для конкретного пользователя?
 - это в какой таблице в вопросах? или в таблице пользователей? или создать таблицу со всеми вопросами/ответами всех пользователей? тогда в чем разница с созданием новой таблицы?

вопросы в основном тесте (так же как и варианты ответа) могут изменяться во время ответа - это не обсуждаемое условие, а факт, который необходимо учитывать.


--------------------
Запчасти на иномарки www.avtograd55.ru.
Если есть время - зайдите и посоветуйте что исправить и что доработать.
PM MAIL WWW ICQ   Вверх
lukas
Дата 24.9.2008, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15



Цитата(slang @  24.9.2008,  18:35 Найти цитируемый пост)
 - а почему нет, если в тесте пользователя должны быть НЕ ID!!!!!, а полный вариант теста. по окончанию периода тесты уходят в архив в виде набора таблиц пользователей и являются самодостаточными.


я не понял ты их генерируешь, т.е. в реальном времени создаешь... сумашедший...  smile, записывай нужную информацию хотя бы в файл... 


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0850 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.