Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / постраничный вывод / 5 сообщений из 5, страница 1 из 1
07.12.2003, 21:10
    #32345860
©Felix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
постраничный вывод
делаю так.... пусть и изврат но все же... меня интересует суть
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
$query =  "SELECT id FROM $table ORDER by id DESC" ;
$result = MYSQL_QUERY($query);
$kol_str =  mysql_num_rows($result);
if (bcmod($kol_str, 10 )== 0 )
{
$k_l=bcdiv($kol_str, 10 );
} else
{
$k_l=bcdiv($kol_str, 10 )+ 1 ;
};
$lim=$l* 10 - 10 ;
$query =  "SELECT date,news FROM $table ORDER by id DESC LIMIT $lim,10 ";
$result = MYSQL_QUERY($query);

все как бы для того чтоб выбирать только 10 записей для каждой страници но что получаеться
$query = "SELECT id FROM $table ORDER by id DESC";
все равно ведь сначала выбираються все...

интуитивно мне кажеться то выбрать только все id проше чем всю таблицу а потом брать только 10 значений.... я прав???

или ето вообще реализуеться по другому????? хотя мне кажеться что все равно придеться выбрать все чтоб посчитать кол-во страниц... хотя можно выбирать пачками по 10 .. а когда закончаться остановиться.. но тогда как номера страниц узнать???
Felix
...
Рейтинг: 0 / 0
08.12.2003, 08:30
    #32345956
Yet another cat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
постраничный вывод
Посмотри для начала FAQ

Но даже если остановишься на собственном варианте, его можно улучшить. Например, чтобы посчитать записи в выборке, ты получаешь на клиент полный список id. Зачем? Считать записи может сделать и сервер: тынц .

=====
Не дождетесь!
...
Рейтинг: 0 / 0
09.12.2003, 16:11
    #32348127
Sehensucht!
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
постраничный вывод
почитай про LIMIT в sql-e...
...
Рейтинг: 0 / 0
09.12.2003, 16:17
    #32348136
Sehensucht!
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
постраничный вывод
... прочитал?
а теперь передавай в параметрах урла номер страницы, тогда для страницы, например, 7:

Код: plaintext
1.
$offset =  10 *($_GET['page'])
$query =  "SELECT id FROM $table ORDER BY id DESC LIMIT 10 ,$offset"

и получишь 10 записей, начиная с записи номер 71
...
Рейтинг: 0 / 0
09.12.2003, 19:06
    #32348386
©Felix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
постраничный вывод
2Sehensucht!

Уважаемый.... советую вам почитать про LIMIT

Код: plaintext
1.
The LIMIT clause can be used to constrain the number of rows returned by the SELECT statement. LIMIT takes one or two numeric arguments, which must be integer constants. With one argument, the value specifies the number of rows to return from the beginning of the result set. With two arguments, the first specifies the offset of the first row to return, the second specifies the maximum number of rows to return. The offset of the initial row is  0  (not  1 ): To be compatible with PostgreSQL MySQL also supports the syntax: LIMIT row_count OFFSET offset. 
mysql> SELECT * FROM table LIMIT  5 , 10 ;  # Retrieve rows  6 - 15 


помоему ясно и четко написано, что первый параметр указывает на номер стартовой записи, а второй на выбираемое количество....

и Ваш код привидет к получению 70 записей начиная с 11 так что внимательнее читайте мануал прежде чем давать "умные советы"

во-вторых, если Вы заметили... то я в своем коде использую лимит... и к тому же с переменным первым параметром, так что я имею представление что ето такое...

и в третих... мой вопрос заключался в целесообразности выбора всех записей для подсчета кол-ва страниц и потом использования лимита... ведь если мы все равно выбираем первый раз все, то почему бы не выбрать все записи без лимита..... и я уже нашел овет....

запрос
$query = "SELECT id FROM $table ORDER by id DESC";
ошибочный... вместо него должен быть
$query = "SELECT count(*) FROM $table";
в таком случае не шерститься вся таблица.... и потом получив количество страниц уже действительно целесообразно использовать лимит...
Felix
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / постраничный вывод / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]