Автор Тема: Как разбить вывод результатов из БД на несколько страниц  (Прочитано 12608 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Dimetrius

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Подскажите кто знает!

Мне нужно сделать постраничный вывод результатов из БД, по 10 строк на страницу. Внизу естессно предыдущаия страница/следующая страница (появляется только когда 10 строк будет) или даже лучше 1,2,3,4 страница, а в идеале и то и другое :)

Напишите пожалуйста полностью код, а то совсем не знаю как это делается... :(

Заранее благодарен...

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
Какая БД?
если PostgreSQL:
первые десять строк:
SELECT test_id FROM test LIMIT 10 OFFSET 0;
от 10 до 20 стр.:
SELECT test_id FROM test LIMIT 10 OFFSET 10;
от 20 до 30:
SELECT test_id FROM test LIMIT 10 OFFSET 20;
и т.д.
And no religion too...

Оффлайн tserbis

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 496
  • +0/-0
  • 0
    • Просмотр профиля
Dimetrius,
воспользуйся поиском. Обсуждалось многократно. Скорее всего можно найти не только объяснение, но и готовый код.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Dimetrius
кроме знаний бывает еще работа ума, сообразительность
ты не поверишь, но человек тем и оличается от животного, что он может решить  задачу, не зная  решения! А просто подумав над ней.
Ты не згнаешь, как делается что?
Как программы пишутся?
как ссылки делать?

Оффлайн Dimetrius

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
commander,
База MySQL, я недавно начал работать и изучать БД и, к сожалению еще не все знаю и понимаю, если не затруднит, напишите пожалуйста что и где мне надо прописать для реализации этой задачи. Я буду очень благодарен!

Спасибо!

Оффлайн Dimetrius

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
RomikChef
Я не знаю как реализовать ту задачу которую описал в теме. Я недавно начал работать с БД и еще не все знаю, а Ваш сарказм я не понимаю.

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

Оффлайн Dimetrius

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
tserbis
Спасибо за совет, но вот только что-то не могу найти ;) + у меня задача достаточно простая, просто не знаю как ее реализовать, а на форуме описываются в основном сложные варианты.

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
Dimetrius
на форуме описываются разные варианты.
милости просим в поиск.
если ты еще не все знаешь - читай документацию и используй поиск, а не беги по каждому поводу спрашивать...
AS IS...

Оффлайн Dimetrius

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
ThE0ReTiC
Спасибо за совет прочитать документацию. Проблема в том, что я не смог найти конкретное решение для задачи или не там искал ;)

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

Тем не менее, спасибо за участие и совет :)

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
видимо способность с поиску на генетическом уровне передается.
либо есть, либо нет и быть не может
http://www.phpclub.ru/?m=faq&s=96
AS IS...

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
Dimetrius
Посторайся задуматься над проблеммой, написть алгоритм по которому нужно действовать и решение придет, может не самое оптимальное, но всё же решение... :)

На каком языке программирования ты собираешся реализовывать вывод данных из БД?
And no religion too...

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Цитировать
не демонстрировать свои знания

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

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

советую тебе изменить свое потебительское отношение к форуму.

Оффлайн Dimetrius

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
commander
Я задумывался об этом все выходные ;) ну никак не идет... опыта не было в этой задачи и даже не знаю с какой стороны подобраться... :(

Все это дело работает на php.

Я понимаю, что задача возможно простая и вопросы мои дурацкие :) но.... рашение найти все же не могу.

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
Хоть это и не в моих правилах... давать готовые решения, но уж ладно:
PERL:

#!/usr/bin/perl -w
use strict;
use 
CGI qw(:standard);
use 
lib \'.\';
use SQLayer;
use HTML::Template;
my $D = SQLayer -> new(database =>\'DBI:Pg:dbname=comma;host=localhost;port=5432\',user=>\'user\', password=>\'secret\');
my $limit=10; #кол-во выводимых сток.
my $order_from=param(\'order_from\'); # переменная с которой начинаеться выборка.
my @all_rows=$D->column("SELECT ..."); #выбираем общее кол-во строк.
my $PData=$D->row_hash("SELECT .... LIMIT $limit OFFSET $order_from"); #выбираемограниченное кол-во строк.

        my $num_col=scalar(@all_rows);
        my $navigate;
        my $var_num=0;
        my ($order_from_next, $order_from_last, $check_last, $check_next, $limit_nl);
        my $i=0;
        while ($num_col >= $var_num)
        {
        $navigate->[$i]{\'order_from\'}=$var_num;
        $navigate->[$i]{\'limit\'}=$limit;
        $navigate->[$i]{\'number\'}=$i+1;
        if ($var_num==$order_from)
        {$navigate->[$i]{\'select\'}=1;}
        else {$navigate->[$i]{\'select\'}=0;}
        $var_num+=$limit;
        $i++
        }
        my $NA=0;
        while ($navigate->[$NA])
        {
             if ($navigate->[$NA]{\'order_from\'}==$order_from)
             {
                  unless ($NA==0)
                  {
                  $order_from_last=$navigate->[$NA-1]{\'order_from\'};
                  $check_last=1;
                  }
                  else
                  {
                  $check_last=0;
                  }
                  unless ($NA==$i-1)
                  {
                  $order_from_next=$navigate->[$NA+1]{\'order_from\'};
                  $check_next=1;
                  }
                  else
                  {
                  $check_next=0;
                  }
             $limit_nl=$navigate->[$NA]{\'limit\'};
             }
             $NA++
        }
    my $check_select=0;
    my $T = HTML::Template -> new(filename => "test.tmpl");
    print "Content-type: text/html\\n\\n";
    $T -> param(abc=>$PData, navigate=>$navigate, order_from_next=>$order_from_next, order_from_last=>$order_from_last, limit_nl=>$limit_nl, check_last=>$check_last, check_next=>$check_next, check_select=>$check_select);
    print $T -> output();
And no religion too...

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
посмотри алгоритм и реализуй его на PHP c MYSQL я реализовал на PERL + PostgreSQL...
And no religion too...

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28