![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| kall1sto |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 19.10.2007 Репутация: нет Всего: нет |
Здравствуйте, возникла проблема. Работал у нас программист он писал прогу: смысл - багтрекер... Он уволился а мне (сисадмину)поручили с этим разобраться, а я в перле как ... ).
Вообщем через запрос перла о написал:
и в данный момент оно выводит абсолютно все репорты о багах, которых собралось уже около 20000 и все это фомируется на одной странице, что не очень удобно... Прошу у вас помощи. Вижу два решения проблемы: либо выводить на жэкран - последних 200 репортов, либо добавить страницы (на каждой из которой будет 200 репортов) Так как с Perl, не работал вообще, то синтаксис его для меня не понятен (частично). Для реализации 1-го варианта понимаю что необходимо поправить цикл While... но условие выхода из него для меня сложно реализовать. Для реализации 2-го идей вообще нет, т.к. не знаю способов добавление страниц... Заранее спасибо. |
|||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
sql понимает limi и offset
|
|||
|
||||
| kall1sto |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 19.10.2007 Репутация: нет Всего: нет |
сорь, как писал уже синтаксис не знаю... понимаю что нужноменять эту строку:
но условия выхода не понимаю... и можно ли написать путем??? (это просто алгоритм...) a=1 b=20000 while (a=(b-200)) { выводим сообщения: a=a+1 } интересует можно ли фиксировано в условии выхода из цикла вставить цифру 200 Это сообщение отредактировал(а) kall1sto - 27.3.2009, 15:50 |
|||
|
||||
| NuINu |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 131 Регистрация: 19.7.2008 Репутация: 5 Всего: 6 |
задачи:
1.выучить перл 2.выучить sql |
|||
|
||||
| kall1sto |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 19.10.2007 Репутация: нет Всего: нет |
я понимаю, что для вас проще вствить две строки, которые ожно указывать в каждом топике данного раздела, чем попросту отредактировать эту строку:
но по-моему форум и существет для беседы и помощи. |
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
kall1sto,
вариант со страничным разбиением будет сложнее. -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| tolkien |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 277 Регистрация: 5.4.2008 Репутация: 4 Всего: 4 |
Тебе выше уже написали подсказку. SQL LIM и OFFSET.
В гугле набери эти слова получаешь массу примеров как это писать и что это делает |
|||
|
||||
| kall1sto |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 19.10.2007 Репутация: нет Всего: нет |
Пасиб отозвавшимся...
релизовал через страницы: (нужен дополнительный файл) итого получилось так: первый файл:
второй файл:
Добавлено через 3 минуты и 28 секунд ginnie, отдельное спасибо ) вставил еще и твой скрипт ) |
||||
|
|||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
kall1sto, делать ограничения в цикле выборки данных
без ограничения количества получаемых данных (20000 строк) - плохая идея! -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| mastercz |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 5.11.2008 Репутация: нет Всего: нет |
ИМХО, плохо решена задача. Тут, сразу же посоветовали вам использовать limit и offset
Смысл не в том чтобы, перебирать каждый раз все 20000 записей, что занимает время. А скармливать скрипту очередную порцию записей из из базы данных. (limit =200, а offset (Npage-1)*limit). Ваш скрипт очень быстро переделываеться под это. Вы удивитесь, насколько быстрее будет отображаться ваша, 99-ая страница. |
|||
|
||||
| myth777 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 30.3.2009 Репутация: -1 Всего: -1 |
Делается с помощью LIMIT - стандартная ф-ция мускула + создание линков для перехода по PAGE страницы.
|
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
небольшое замечание: в самом первом сообщении указано, что данные берутся из SQLite -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |