Avatar billede leif Seniormester
02. oktober 2005 - 16:37 Der er 13 kommentarer og
3 løsninger

Bladre sider

Hej,

Jeg tror min hjerne er gået i stå idag.

Jeg har en tagwall, men lige nu skriver den bare alle records ud i en lang række.

Nogen som tilfældigvis har noget kode jeg kan bygge videre på, så jeg kan få fx. 10 records af gangen men kan bladre til side 2 osv ?

På forhånd tak.

Fra
Leif
Avatar billede udvikler Nybegynder
02. oktober 2005 - 16:40 #1
$range = 5; // Antal resultater pr. side

$offset = isset($_GET['offset']) ? $_GET['offset'] : 0;

$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM databasenavn"),0);
if ($offset >= $range) {
    $forrige = $offset-$range;
    echo "<a href='?offset=$forrige'>Forrige</a> | ";
} else {
    echo 'Forrige | ';
}
if ($antal > $offset+$range) {
    $naeste = $offset+$range;
    echo "<a href='?offset=$naeste'>Næste</a> ";
} else {
    echo 'Næste ';
}
Avatar billede leif Seniormester
02. oktober 2005 - 16:46 #2
Har fejl i linien med:
$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM databasenavn"),0);
Avatar billede leif Seniormester
02. oktober 2005 - 16:47 #3
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /var/www/virtual/navn/domæne.dk/public_html/mappe/admin/tagwall.php on line 91
Avatar billede dotcom1 Nybegynder
02. oktober 2005 - 16:48 #4
Det ligner meget noget fra Shaefners paging-script. Se hele scriptet her: http://www.ebruger.dk/artikler/artikel.asp?artikelID=19 Det virker.
Avatar billede jaw Nybegynder
02. oktober 2005 - 17:35 #5
Det skal jo være tabelnavn og ikke databasenavn, men det har du måske set?!
Avatar billede leif Seniormester
02. oktober 2005 - 17:40 #6
Jep, og det virker nu !

Kan man få den til at sige hvad side man er på ud af xx antal ?
Avatar billede leif Seniormester
02. oktober 2005 - 17:43 #7
Vil dotcom1 også ligge et svar ?
Avatar billede jaw Nybegynder
02. oktober 2005 - 17:44 #8
Du kan jo lave:
$antal_sider = ceil($antal / $range);
det må så være antallet af sider.
Den side man så er på, må kunne fremkomme af:
$nuvaerende_side = ceil($offset / $range);

echo "Du er p&aring; side: ".$nuvaerende_side." ud af: ".$antal_sider;
tror jeg da :)
Avatar billede leif Seniormester
02. oktober 2005 - 17:47 #9
Hmm, den skriver bare side 0 på første side !
Avatar billede jaw Nybegynder
02. oktober 2005 - 17:48 #10
$nuvaerende_side = ceil(($offset+$range) / $range);
Avatar billede leif Seniormester
02. oktober 2005 - 17:52 #11
jaw -> Cool, vil du også ligge et svar ?
Avatar billede jaw Nybegynder
02. oktober 2005 - 17:53 #12
Tjoh, kan jeg da godt :)
Avatar billede dotcom1 Nybegynder
02. oktober 2005 - 21:48 #13
Svar :)
Avatar billede udvikler Nybegynder
02. oktober 2005 - 22:14 #14
Sorry jeg ikke lige hjalp mere end at bare komme med en kode, men skulle desværre gå.
Ja, i har ret, jeg har kopieret det fra schaefners dejlige forum - sorry, gjorde det i en fart, glemte helt at sige det var hans. Håber det er iorden :)
Avatar billede coderdk Praktikant
02. oktober 2005 - 22:20 #15
Her er også et eksempel: http://php.coder.dk/pagination.php
Avatar billede leif Seniormester
02. oktober 2005 - 22:59 #16
Selvfølgelig er det iorden ! Jeg fandt ud af det, men det hjalp da en del da dotcom1 kom med hele scriptet så kig det op for mig hvordan det hang sammen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester