Struppi: MySQL Abfrage seitenweise darstellen

Beitrag lesen

Die Anzahl Seiten ermitteln is auch noch einfach. Da nehem ich die DB Abfrage und dividiere Sie durch Anzahl seiten. Das sieht dann etwa so aus:

Du brauchst dann noch einen CGI Parameter, der die die aktuelle Seite anzeigt.

my $page = CGI::param('page') || 0;

$dbh = DBI->connect($db_dsb, $sqlusr, $sqlpw) or return $sqlmsg = "MySQL Verbindungsfehler: $DBI::errstr";

$sql = "SELECT * FROM archive WHERE id='$check'";

eher so

$sql = "SELECT count(id) FROM archive order id";

$sth = $dbh->prepare($sql);
$sth->execute();

$results = $sth->rows;

Jetzt musst du die Links ausgeben:

my $limit = 10;
my $pages = int( $result / $limit );

for(0..$pages) {
print CGI::a( {-href => '?page=' . $_}, $_ );
}
my $start = $page * $limit;

$sql = "SELECT count(id) FROM archive LIMIT $start, $limit order id";
$sth = $dbh->prepare($sql);
$sth->execute();
und halt das Ergebniss der Abfrage ausgeben.

Struppi.