Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

[PHP]Листание страниц по результатам поиска по MySQL

2.1K
21 января 2003 года
sasik
15 / / 21.01.2003
Здравствуйте, уважаемые...
Подскажите, как написать механизм листания страниц для вывода результата поиска в базе данных
MySQL.
Заранее всем благодарен.
250
21 января 2003 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by sasik
Здравствуйте, уважаемые...
Подскажите, как написать механизм листания страниц для вывода результата поиска в базе данных
MySQL.
Заранее всем благодарен.


Используй LIMIT

283
22 января 2003 года
Alone
910 / / 20.11.2002
Цитата:
Originally posted by Joker

Используй LIMIT


Точнее LIMIT n,m
возращает n-строк начинаю с m

2.1K
22 января 2003 года
sasik
15 / / 21.01.2003
Цитата:
Originally posted by Alone

Точнее LIMIT n,m
возращает n-строк начинаю с m



С функцией то все понятно, но разве после прекращения действия скрипта результирующий набор данных не теряется? Меня интересует, надо ли выполнять запрос на выборку каждый раз при листании или как-то его можно сохранить после первого раза?

4
22 января 2003 года
mike
3.7K / / 01.10.2002
Цитата:
Originally posted by sasik


С функцией то все понятно, но разве после прекращения действия скрипта результирующий набор данных не теряется? Меня интересует, надо ли выполнять запрос на выборку каждый раз при листании или как-то его можно сохранить после первого раза?



Надо.
Если ищет медленно, то надо сохранять во временную таблицу или файл.

2.5K
23 января 2003 года
any
14 / / 10.01.2003
Цитата:
Originally posted by mike


Надо.
Если ищет медленно, то надо сохранять во временную таблицу или файл.



Когда я писал постраничный вывод для MSSQL на PHP, а там такой полезной функции LIMIT нету, то делал выборку всех нужных айдишников при первом обращении и складывал их в виде массива в сессию, а на следующих страницах уже разбирал этот массив.

2.1K
23 января 2003 года
sasik
15 / / 21.01.2003
Читал в нете про листание страниц: автор советовал завести объект, который будет все выполнять, привел пример исходников и т.д.
вот урл http://www.i2r.ru/static/256/out_16434.shtml
Так вот, там я что-то не нашел повторного выполнения запроса.
Но по-моему после выполнения скрипта все переменные и объекты должны удаляться.
Может я не прав?
______________________
Благодарен всем за ответы, которые вы прислали.
250
23 января 2003 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by any


Когда я писал постраничный вывод для MSSQL на PHP, а там такой полезной функции LIMIT нету, то делал выборку всех нужных айдишников при первом обращении и складывал их в виде массива в сессию, а на следующих страницах уже разбирал этот массив.


Глупость там все есть.

> Но по-моему после выполнения скрипта все
> переменные и объекты должны удаляться.
> Может я не прав?

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

283
23 января 2003 года
Alone
910 / / 20.11.2002
Вот вот
представляете чел захотел посмотреть только одну-две страници :)
вот ссылка http://www.gc.pp.ru/documentation/php/mysql_limit.php там вроде все написано
2.1K
23 января 2003 года
sasik
15 / / 21.01.2003
http://www.gc.pp.ru/documentation/php/mysql_limit.php[/url] там вроде все написано [/QUOTE]

Thanks......
2.5K
23 января 2003 года
gMix
10 / / 20.01.2003
Цитата:
Originally posted by sasik
...
Так вот, там я что-то не нашел повторного выполнения запроса.
Но по-моему после выполнения скрипта все переменные и объекты должны удаляться.
Может я не прав?



Да ты не прав, этот скрипт каждый раз загружает все данные по запросу, а потом mysql_data_seek он всего лишь позиционируется на нужном сегменту.
а при испоьзовании LIMIT N,M загужаются только M строк.
Впринципе он в своём скрипте сделал то что уже давно сделано в MySQL.
Представь что запрос select * from table1 where field='1'; содержи несколько тысяч строк, зачем их спрашивается гдето хранить? зачем их выбирать все а потом от туда вырезать нужный кусок? :)


Вот небольшая функция
GetMyPageSql(Соединение_с_MySQL,"запрос",страница,кол-во_строк_на_странице) возвращает массив со значениями запроса.
<?php
function GetMyPageSql($sql_connection,$sql_query,$page=0,$StrOnPage=0)
{
if ($StrOnPage!=0&&$page!=0)
{
$limiter=" LIMIT ".($StrOnPage*$page).",".$StrOnPage;
}
else
{
$limiter="";
}
$result = mysql_query($sql_connection,$sql_query.$limiter) or DIE("F***ing Query");
$result_arr = mysql_fetch_array($result, MYSQL_ASSOC) or array();
mysql_free_result($result);
Return($result_arr);
}
?>
Если есть ошибки, думаю сами исправите :)

2.1K
23 января 2003 года
sasik
15 / / 21.01.2003
Спасибо за функцию.....
Я вот еще что хотел узнать:
нужно ли при каждом новом запросе писать
mysql_connect(...) и mysql_selectdb.
Я не знаю, сохранится ли соединение после выполнения скрипта и сохранится ли сеанс именно с конкретной БД. А если нет, то как-то тупо каждый раз - коннект, селект; коннект, селект....
Вот...:-?
2.5K
24 января 2003 года
gMix
10 / / 20.01.2003
Цитата:
Originally posted by sasik
Спасибо за функцию.....
Я вот еще что хотел узнать:
нужно ли при каждом новом запросе писать
mysql_connect(...) и mysql_selectdb.
Я не знаю, сохранится ли соединение после выполнения скрипта и сохранится ли сеанс именно с конкретной БД. А если нет, то как-то тупо каждый раз - коннект, селект; коннект, селект....
Вот...:-?


нужно коннектиться к базе при каждом выполнении скрипта.

В начале выполнения скрипта делай коннект и при выполнении запросов ссылайся на него , тоесть при каждом запросе не обяазтельно делать коннект
<?php
-коннект
...
куча запросов
...
-дисконнект
?>
mysql_connect() это каждый раз новый коннект.
mysql_pconnect() постоянный коннект(не скрипта а самой среды под которой крутится твой скрипт)

и вообще качни док по PHP с примерами http://weblabor.hu/php-doc-chm/
вещь хорошая :)

2.1K
25 января 2003 года
sasik
15 / / 21.01.2003
Большое спасибо всем, кто отвечал на мои
вопросы, Ваши ответы мне очень помогли...
С уважением Sasik.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог