|
|
|
Не заснет ли пользователь от времени формирования страницы
|
|||
|---|---|---|---|
|
#18+
Люди вопрос такой Когда пользователь за ходит на сайт он видит, ну например, меню вида -Nokia -Samsung -Panasonic И т.д. Я хочу чтобы меню немного изменилось: -Nokia [66] -Panasonic [77] Т.е. чтобы пользователь видел только те марки, у которых есть какие-то сведения ,и количество сведений – объявления о продаже показывается в квадратных скобках( ну пусть к примеру 66 Nokia продается). Вопрос как такое получить. Я знаю только один способ -Провести запрос по всем маркам к БД и сформировать на основе этих запросов ассоциативный массив вида Nokia-66 Samsung -0 Panasonic-77 и т.д. Этот ассоциативный массив поступает на вход php функции и та в свою очередь будет уже формировать вывод в броузер. Вроде бы все хорошо, но вот я боюсь только того что эти запросы будут идти крайне долго ведь у меня к примеру 150 марок, т.е например Nokia Samsung Panasonic LG .. .. 150 марок Т.е. время формирования страницы=время от 150 запросов+ время от формирования асс. Массива+ разбор и вывод на его основе в броузер php функцией. И вот думаю не заснет ли пользователь прежде чем дождется появления главной страницы вида -Nokia [66] -Panasonic [77] В общем если пользователь заснет, то как делаются такие вещи чтобы он не заснул. Из идей , ну например пусть формируется файл, гне-нить в 3 часа ночи , вида Nokia-66 Panasonic-77 … … И сохраняется на севере, и каждый раз в три часа ночи он будет формироваться заново. Ну а php функция будет работать с этим файлом. Вроде все хорошо но данные ,которые показываются на главной странице будут объективными лишь в три часа ночи. В общем я думаю ,что я понятно изложил что мне нужно. Подскажите плз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 14:49 |
|
||
|
Не заснет ли пользователь от времени формирования страницы
|
|||
|---|---|---|---|
|
#18+
ну count() функция довольно тяжелая....про пхп сказать ничего не могу, оч мало общался, впрочем 150 категорий по 100, допустим, товаров не такая уж большая выборка, так что тут педали в базе врядли будут, только если дальше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 14:59 |
|
||
|
Не заснет ли пользователь от времени формирования страницы
|
|||
|---|---|---|---|
|
#18+
У вас же какие-то действия тоже в таблице хранятся? так может составите просто запрос, который вам будет готовое решение выдавать?Итого у вас будет всего один запрос, время на исполнение которого будет довольно мало ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 15:01 |
|
||
|
Не заснет ли пользователь от времени формирования страницы
|
|||
|---|---|---|---|
|
#18+
А если завести табличку с полями Марка Счетчик и при вводе новых сведений увеличивать счетчик, при удалении уменьшать. А в три часа ночи можно на всякий случай переформировывать таблицу. Время поиска уменьшится за счет некоторого увеличения времени ввода и удаления сведений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 15:01 |
|
||
|
Не заснет ли пользователь от времени формирования страницы
|
|||
|---|---|---|---|
|
#18+
предлагаю вообще забить на 3 часа ночи и отнести эту идею в разряд бредовых) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 15:03 |
|
||
|
Не заснет ли пользователь от времени формирования страницы
|
|||
|---|---|---|---|
|
#18+
имхо вопрос не в ту ветку, надо либо запрос оптимизировать(если проблемы в базе) либо пхп-код ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 15:03 |
|
||
|
Не заснет ли пользователь от времени формирования страницы
|
|||
|---|---|---|---|
|
#18+
150 запросов? А гуманнее никак нельзя сделать, одним запросом типа "select марка, count(*) from все_товары group by марка", ну и условия там всякие, соединения (это уже в форум по СУБД)? И просто циклом нарисовать меню. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 15:04 |
|
||
|
Не заснет ли пользователь от времени формирования страницы
|
|||
|---|---|---|---|
|
#18+
EmilRegisУ вас же какие-то действия тоже в таблице хранятся? так может составите просто запрос, который вам будет готовое решение выдавать?Итого у вас будет всего один запрос, время на исполнение которого будет довольно мало у меня таблички, к примеру будут такие вот models id model Marks id buf_id_models name_mark unit id buf_id_marks color price Т.е есть марки, у марки много моделей, у модели много представителей этой модели Я чот не понял про один запрос....... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 15:07 |
|
||
|
Не заснет ли пользователь от времени формирования страницы
|
|||
|---|---|---|---|
|
#18+
ну я правильно понял, что показывать надо тока те марки, у которых что-то заполнено в таблице unit? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 15:10 |
|
||
|
Не заснет ли пользователь от времени формирования страницы
|
|||
|---|---|---|---|
|
#18+
нет не правильно...В общем вопрос в том, откуда берутся всякие объявления о продажах тех или иных моделей - то, что вы хотите отображать в скобках ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 15:11 |
|
||
|
Не заснет ли пользователь от времени формирования страницы
|
|||
|---|---|---|---|
|
#18+
Да, т.е. все должно быть так: Кто-то захаодит на сайт и видит Nokia [66] Samsung[33] Щелкает по Nokia[66] Видит 2100 [33] 6600 [33] Щелкает по 2100[33] и видит -Nokia -2100 -черный -1000рублей и т.д. Вопрос в том как получать эти циферки в квадратных скобках, идею свою я сказл. А вот про один запрос не очень понял. Можно поподробнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 15:14 |
|
||
|
Не заснет ли пользователь от времени формирования страницы
|
|||
|---|---|---|---|
|
#18+
EmilRegisну я правильно понял, что показывать надо тока те марки, у которых что-то заполнено в таблице unit?Похоже, что все (в стартовом посте был пример с 0 единиц) Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 15:15 |
|
||
|
Не заснет ли пользователь от времени формирования страницы
|
|||
|---|---|---|---|
|
#18+
Usik, Исходя из текстового описания, таблицы такие: marks (id, name_mark) models (id, model, buf_id_marks) unit (id, buf_id_models, color, price) Из них примерно такой запрос вернет пары марка-количество: select mk.name_mark,count(*) from unit u join models m on u.buf_id_models=m.id join marks mk on m.buf_id_marks=mk.id where какие-то_сведения_и_количество_сведений group by mk.name_mark За более красивым или работающим ( :) ) запросом обратитесь в форум по Вашей СУБД (или, как вариант, почитайте самостоятельно про group by в сочетании с агрегатными функциями). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 15:23 |
|
||
|
Не заснет ли пользователь от времени формирования страницы
|
|||
|---|---|---|---|
|
#18+
Usik, вы написали Т.е. чтобы пользователь видел только те марки, у которых есть какие-то сведения ,и количество сведений – объявления о продаже показывается в квадратных скобках( ну пусть к примеру 66 Nokia продается). Таких сведений не может содержаться ни в одной из приведённых вами таблиц...таки откуда они всё таки берутся? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 15:24 |
|
||
|
Не заснет ли пользователь от времени формирования страницы
|
|||
|---|---|---|---|
|
#18+
туплю...конец рабочего дня)) всё, дошло.. ну связать 3 таблицы и вывести количество моделей и название марки совсем не сложно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 15:26 |
|
||
|
Не заснет ли пользователь от времени формирования страницы
|
|||
|---|---|---|---|
|
#18+
EmilRegisUsik, вы написали Т.е. чтобы пользователь видел только те марки, у которых есть какие-то сведения ,и количество сведений – объявления о продаже показывается в квадратных скобках( ну пусть к примеру 66 Nokia продается). Таких сведений не может содержаться ни в одной из приведённых вами таблиц...таки откуда они всё таки берутся? Ясен пень что число описывающее сколько Nokia продается нету. Поэтому я хотел сделать так Пусть у Nokia id=1, тогда запрос который вернет все unit-ы у Nokia будет примерно таким: Код: plaintext Из ResulSet этого запроса я получу все телефоны которые принадлежат nokia. Значит надпись вида Nokia [66] я могу сформировать. Вот откуда взялось 150 запросов. авторUsik, Исходя из текстового описания, таблицы такие: marks (id, name_mark) models (id, model, buf_id_marks) unit (id, buf_id_models, color, price) Из них примерно такой запрос вернет пары марка-количество: select mk.name_mark,count(*) from unit u join models m on u.buf_id_models=m.id join marks mk on m.buf_id_marks=mk.id group by mk.name_mark За более красивым или работающим ( :) ) запросом обратитесь в форум по Вашей СУБД (или, как вариант, почитайте самостоятельно про group by в сочетании с агрегатными функциями). А тут получается этот же результат но одним запросом, я так понял. Ладно спс буду вникать в этот запросик ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 15:35 |
|
||
|
Не заснет ли пользователь от времени формирования страницы
|
|||
|---|---|---|---|
|
#18+
Usik, что то типа такого Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 19:09 |
|
||
|
Не заснет ли пользователь от времени формирования страницы
|
|||
|---|---|---|---|
|
#18+
Usik, вы лучше в зависимости от типа используемой вами базы данных, обратитесь в соответствующий раздел форума IMHO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 19:10 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=36279882&tid=1454048]: |
0ms |
get settings: |
4ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
139ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 406ms |

| 0 / 0 |
