#!/usr/bin/perl -T
use strict;
use warnings FATAL => 'all';
use DBI;
use CGI qw( :standard );
use CGI::Carp qw( fatalsToBrowser );
use HTML::Template;
my $page_id = param('id');
$page_id = 1 if !defined ( $page_id ) ||
$page_id !~ /^\d+$/ || $page_id < 1;
my $per_page = param('use');
$per_page = 5 if !defined ( $per_page ) ||
$per_page !~ /^\d+$/ || $per_page < 1;
my $tmpl = HTML::Template->new(filename => 'html.tmpl');
my $dbh = DBI->connect('DBI:mysql:database:hostname',
'**********', '**********') or die $DBI::errstr;
my $query = sprintf ('SELECT id, date, headline, display FROM news
ORDER BY id LIMIT %d, %d', $page_id - 1, $per_page + 1);
my $sth = $dbh->selectall_arrayref ( $query );
$dbh->disconnect();
my @rows;
for (my $i = 0; $i < $per_page && $i < @{$sth}; $i++)
{
my @cols = @{$sth->[$i]};
my %row = (
id => $cols[0],
date => $cols[1],
headline => $cols[2],
news => $cols[3],
);
push @rows, \%row;
}
my $back_link = ( $page_id > 1 ) ?
a({-href=> url() . '?id=' .
( $page_id - $per_page ) . ';use=' .
$per_page}, 'Back') . " | " : "Back | ";
my $next_link = ( @{$sth} > $per_page ) ?
a({-href=> url() . '?id=' .
( $page_id + $per_page ) . ';use=' .
$per_page}, 'Next') : "Next";
$tmpl->param(
PREV => $back_link,
NEXT => $next_link,
DB_RECORDS => \@rows,
);
print header, $tmpl->output;