![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| rodendron |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 152 Регистрация: 22.3.2005 Репутация: нет Всего: нет |
sub view_main {
for (0 .. $vagreis->last_record) { my ($deleted, $nv, $kg, $grot, $kgp, $esr_pogr, $qgv) = $vagreis->get_record($_,"NV", "KG", "GROT", "KGP", "ESR_POGR", "QGV"); if($kg = "23107") { for (0 .. $grota->last_record) { my ($deleted, $name, $st, $tgnl) = $grota->get_record($_,"NAME", "ST", "TGNL"); if($grot = $tgnl and $esr_pogr = $st) { print "$grot $tgnl $esr_pogr $st $name<br>"; } } } } } Эта процедура выводит все записи из таблицы vagreis и grota. То есть находит в vagreis запись и выбирает из grota соответсвующие ей. например: vagreis = 1,1,1,1,1,1 grota = 1,2,2,2,2,2 grota = 1,3,3,3,3,3 vagreis = 5,1,1,1,1,1 grota = 5,2,2,2,2,2 grota = 5,3,3,3,3,3 grota = 5,4,4,4,4,4 и т.д. получается я четко не могу знать сколько записей найдется а мне надо вывести только по 50 на каждой страничке считать в массив все, и затем работать с ним - нереально, так как данные в массив копируются ну очень долго (столько же, сколько и выводятся, тогда уж проще их сразу вывести) в связи с этим вопрос, как сделать разбивку по страничкам? допустим поступает запрос. Вывести 50 записей с первой. $start = 1; $end = 50; Вот так это работает: for (0 .. $vagreis->last_record) { # из vagreis выбираем ... for ($start .. $end) { из grota выбираем print "$name";. И если потом выбрать чтобы вывелись записи с 51 по 100, то тоже самое, только: $start = 51; $end = 100; Вот так это работает: for (0 .. $vagreis->last_record) { # из vagreis выбираем ... for ($start .. $end) { из grota выбираем print "$name";. Но это неправильно, потому что когда мы дойдем до конца таблицы grota, то не сможем обратиться к параметрам выбора из vagreis То есть из vagreis всегда будут выбираться данные с 0 по последнее. Смысл такой, надо, не пользуясь массивами, изобразить следующее: ____________________________________________________ sub view_main { for (0 .. $vagreis->last_record) { my ($deleted, $nv, $kg, $grot, $kgp, $esr_pogr, $qgv) = $vagreis->get_record($_,"NV", "KG", "GROT", "KGP", "ESR_POGR", "QGV"); if($kg = "23107") { for (0 .. $grota->last_record) { my ($deleted, $name, $st, $tgnl) = $grota->get_record($_,"NAME", "ST", "TGNL"); if($grot = $tgnl and $esr_pogr = $st) { @array = ($grot, $tgnl, $esr_pogr, $st, $name); } } } } } $start = 1; $end = 50; for ($i = $start; $i<$end; $i++) { print "@array[$i]"; } ____________________________________________________ Заранее благодарен за помощь. |
|||
|
||||
| rodendron |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 152 Регистрация: 22.3.2005 Репутация: нет Всего: нет |
Народ, большое сорри!
В Perl же проверка равенства это не одно равно, а два. Пересел с одного языка на другой сорри! |
|||
|
||||
| Chuck |
|
|||
![]() Сушня ![]() ![]() Профиль Группа: Эксперт Сообщений: 442 Регистрация: 12.12.2003 Где: Узбекистан, Ташке нт Репутация: нет Всего: 9 |
Ващет как я понял у тя там строка!
А сравнение строк выглядит так
|
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Если сравниваешь числа, то == , если строки, то eq Теперь попробуй сам поправить свой код. Удачи ЗЫ: rodendron Модератор: 1. в одном топике, один вопрос и всё что с ним связано. 2. Когда вставляешь код, пользуйся кнопкой "Код". -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| rodendron |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 152 Регистрация: 22.3.2005 Репутация: нет Всего: нет |
Спасибо!
А если я сравниваю русские буквы, то как сравнивать? то есть
Не срабатывает |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Для сравнения кирилицы, подключи прагму use locale, в начале скрипта, потом сравнивай, так как в твоём примере.
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| rodendron |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 152 Регистрация: 22.3.2005 Репутация: нет Всего: нет |
А это модуль такой? А то чего-то не найду. |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
rodendron - что типа модуля, если быть точнее, модуль прагмы.
Просто в начале скрипта напиши вот так:
Удачи -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| Phoinix |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 16.11.2004 Где: Moskau Репутация: 1 Всего: 2 |
korob2001
Я незнаю как у Вас, а у меня use locale; никогда само по себе не срабатывало, еще и POSIX подключать надо...
|
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Phoinix - а у нас всегда срабатывало. Вообще-то этим и занимается use locale.
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| Phoinix |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 16.11.2004 Где: Moskau Репутация: 1 Всего: 2 |
korob2001
[OFF] Просто смутное предчувствие, что это будет следующим вопросом [/OFF] А вообще, одно другому не мешает... ;) |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Phoinix - что у тебя за ось???
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| rodendron |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 152 Регистрация: 22.3.2005 Репутация: нет Всего: нет |
А как быть с кавычками?
Значения из базы бывают вида ООО "Телеинтел". вот это не помогает:
Резалтом является "ООО " Заранее благодарен за ответ. |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Ничего не понял, ты о чём??? Опиши подробнее чего ты хочешь добиться.
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| rodendron |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 152 Регистрация: 22.3.2005 Репутация: нет Всего: нет |
Простите...
Не смог рахобраться - вот и написал а потом сразу разобрался. Еще раз ссори. ЗЫ:
|
|||
|
||||
![]()
|
| Правила форума "Perl: CGI программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |