On Thu, 18 Mar 2004 16:19:07 +0100, Stig Sørensen wrote:
> Jeg kan simpelthen ikke greje ud hvordan man evt. kun får listet 5 $x fra
> en database og der nedenunder de 5 $x er et link til de næste 5.
Lad linket bestå af
<a href="migselv.php?perpage=$perpage&offset=$offset">næste $perpage</a>
Du hiver da "perpage" og "offset" ind fra $_REQUEST og kører dem igennem
intval(). Hvis $_REQUEST ikke indeholder "perpage" eller "offset", så
sætter du dem til nogle default-værdier.
Når du kender perpage og offset, kan du bruge dem i noget passende SQL,
se fx.
http://troels.arvin.dk/db/rdbms/#select-limit-offset
Man kunne forestille sig kode i stil med følgende (utestet):
<?php
// hiv værdier ind fra GET/POST, eller benyt default-værdier:
$default_offset=0;
$default_perpage=5;
$offset = isset($_REQUEST['offset']) ?
intval($_REQUEST['offset']) : $default_offset;
$perpage = isset($_REQUEST['perpage']) ?
intval($_REQUEST['perpage']) : $default_perpage;
// sammensæt SQL; justér til aktuelle DBMS eller benyt
// SQL-abstraktionslags faciliteter hertil:
$sql="
SELECT *
FROM tabel
ORDER BY unik_værdi(er)
LIMIT $perpage OFFSET $offset
";
// ovenstående er postgresql-style
// fyr sql af og konvertér resultatsæt til HTML
// afslut med link til næste del af resultatsæt:
$out=sprintf(
'<a href="%s?offset=%d&perpage=%d">næste %d</a>',
__FILE__,
($offset+$perpage),
$perpage,
$perpage
);
print $out;
?>
Bør udbygges med detektion af, om der overhovedet findes flere rækker,
før $out udskrives. Kan udvides med link til forrige resultater, også.
--
Greetings from Troels Arvin, Copenhagen, Denmark