Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выдача по одной странице с сервера 
:(
    Опции темы
haspint
Дата 27.4.2008, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Как написать скрипт, чтоб он выдавал по одной странице (как в поисковых системах). Опишите принцип работы. Если можно ссылочки где почитать по теме
PM MAIL   Вверх
arto
Дата 27.4.2008, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 38
Всего: 40



по одной странице чего?
PM MAIL ICQ   Вверх
haspint
Дата 27.4.2008, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



1: Делаю запрос к базе данных
2: Она Возвращает определенный результат(их много)
3: Каждый результат вывести на одной странице
4: переход на следующую страницу осуществляется по ссылке

Так понятно, что я имею в виду?

PM MAIL   Вверх
nitr
Дата 27.4.2008, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 37
Всего: 84



О как! Вроде как обсуждали такое.
Способов как всегда предостаточно, даже есть готовые модули!

Считаем сколько у нас записей (max), выводим к примеру по 100, значит max / 100 = pages, далее запросами и выводим (page - текущая) с (page-1)*100 по page*100. Имхо один из простейших алгоритмов.


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


Эксперт
***


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

Репутация: 38
Всего: 40



хм. а какая проблема?
выводите результат.
в ссылке ставите признак, что результат уже просмотрен (например, порядковый номер).
при обработке ссылки учитываете признак.
PM MAIL ICQ   Вверх
haspint
Дата 27.4.2008, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



не пойму где хранить данные после получения результата запроса, как ето сделать?
PM MAIL   Вверх
tolkien
Дата 27.4.2008, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



1 Способ
Сразу генерте n-го кол страниц. Если их немного то можно все. 

Обработали запрос. 
В ответе 1000 ссылок. 
На страницу вывводите по 100 ссылок. 
Значит создаете 10 страниц html по 100 ссылок в каждой. 

2 Способ
Каждый раз обращаться к базе данных.

Обработали запрос.
В ответе 1000 ссылок.
На страницу выводите по 100 ссылок. Из запроса берете первые 100 ссыллок. Если mysql есть спец конструкция для этого LIMIT n,m (где n - номер начала строки, m - количество возвращаемых строк).
Пример:
SELECT caption, descr FROM books WHERE caption = ? LIMIT= beg_num, 100
PM MAIL   Вверх
haspint
Дата 27.4.2008, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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


Опытный
**


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

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



1-ый способ
Сделай что нибудь вроде сборки мусора. Напиши скрипт который запускается через кажды n-ый интервал и проверяет у  файлов время последнего доступа. Если доступ был к ним давно то удалить. Или эту проверку можно вставить в скрипт генерации html файлов.

2-ой 
С помощью сессий. Для каждого пользователя открываешь сессию. Когда сессия истечет. Файлы связанные с этой сессией удаляешь.

Это сообщение отредактировал(а) tolkien - 27.4.2008, 20:43
PM MAIL   Вверх
gcc
Дата 27.4.2008, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


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

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



аналог только на пхп http://unixforum.org.ua/index.php?topic=4383.0


Код



$sthh = $dbh->prepare("
        SELECT count(*) FROM com where nam= ?
        ");

$sthh->execute($iddd);

#$sthh->finish();

#$from=1;

($rv)=$sthh->fetchrow_array();





$total_articles_number = $rv;

#$total_articles_number = 79;   #����� ���������� ������
$articles_per_page=10; # ���������� ������ �� ��������
#�������� ���������� �������
#$total_pages = ceil($total_articles_number/$articles_per_page);


$total_pages = floor($total_articles_number/$articles_per_page);



if ($from > $total_pages ) {

$from=$total_pages-1;


}



$jj=0;
#$ii=0;

if ($from eq "") {
$jj=0;
#$ii=0;

#$jj=0;
#$ii=10;
}

else {

$jj=0;
#$ii=0;

$jj=$from*$articles_per_page;
#$ii=($from*$articles_per_page)+10;

}


#print "$jj _ $ii _ $from";







#$sthh->finish();

#$from=1;












$sth = $dbh->prepare("
        select 
id,
nam,
tex,
regr
        from com
        where
        nameid = ?
                LIMIT ?, 10
");

$sth->execute($iddd,$jj);


$dbh->disconnect();


#$sth->finish();


#  $rv = $sth->rows;


#$from=1;

$page_number=-1;




# ��������� ���� - ���������� �������� ����� ���������� �������




print << "[INFO]";

</TABLE>

bla-bla 


<TR>
        <TD background="images/tjpg" WIDTH=263 HEIGHT=100% ALT="" valign="top">


<center>

[INFO]





for ($i=-1; $i<$total_pages; $i++) {
# �������� �������� $from (��� $page_number) ��� ������������� � ������������ ������
#$page_number=$i*$articles_per_page;п╒п╣п╨я│я┌ п║п╬п╬п╠я┴п╣п╫п╦я▐:
# ���� $page_number (���������� ��� �������� ���� �������� �� $from �������) �� ������������� ������� ��������,
# ������� ������ �� �������� �� ��������� $from ������ $page_number
$page_number++;

last if ($total_pages < 1);

next if ($page_number > $from+3);

next if ($page_number < $from-3);



if ($page_number!=$from) {
#$page_number++;
print << "[INFO3]";

 <a href="http://.org/sites/index2.pl?idd=$iddd&from=$page_number"> | $page_number |</a> 

[INFO3]
}
# ����� ������ ������� ����� �������� - ������ ������ �������������,
# ��������� �� �� ������ �������� ���� �� ������� ��������
else {print $i+1;} # ���� page_number - ������� �������� - ������ �� ������� (������ �� ������)
}


извените без коментариев, кодировка слетела smile

Это сообщение отредактировал(а) gcc - 27.4.2008, 23:46
PM WWW ICQ Skype GTalk Jabber   Вверх
haspint
Дата 28.4.2008, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Всем спасибо за помощь. А чем лучше воспользоваться CGI::Cookies или CGI::Session?
PM MAIL   Вверх
Itsys
Дата 28.4.2008, 07:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Один вопрос - один пост.

ЗЫ Это тоже самое, что сравнивать ж*пу с пальцем. У каждого модуля свои назначения.
PM MAIL WWW Skype   Вверх
haspint
Дата 29.4.2008, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



тему можно закрыть, еще раз спаибо за помощ
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

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


 




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


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

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