Общие > Базы данных
Как разбить вывод результатов из БД на несколько страниц
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...
Навигация
Перейти к полной версии