Общие > Базы данных

Как разбить вывод результатов из БД на несколько страниц

<< < (3/7) > >>

commander:
Dimetrius
Посторайся задуматься над проблеммой, написть алгоритм по которому нужно действовать и решение придет, может не самое оптимальное, но всё же решение... :)

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

Меняздесьдавнонет:

--- Цитировать ---не демонстрировать свои знания
--- Конец цитаты ---

покажи мне, пожалуйста, цитатой, где я говорил про свои знания?

--- Цитировать ---обращается за советом к более опытным людям
--- Конец цитаты ---

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

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

Dimetrius:
commander
Я задумывался об этом все выходные ;) ну никак не идет... опыта не было в этой задачи и даже не знаю с какой стороны подобраться... :(

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

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

commander:
Хоть это и не в моих правилах... давать готовые решения, но уж ладно:
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();

commander:
посмотри алгоритм и реализуй его на PHP c MYSQL я реализовал на PERL + PostgreSQL...

Навигация

[0] Главная страница сообщений

[#] Следующая страница

[*] Предыдущая страница

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 
Перейти к полной версии