Avatar billede JJ77 Juniormester
22. marts 2006 - 22:46 Der er 3 kommentarer og
1 løsning

Vis maks 25 sider i paging

Jeg har nedenstående paging som virker fint. Men mit problem er at den bare viser antal sider uendeligt, så der bare bliver vist flere linier med links. Kan man ikke få den til at stoppe ved 25 og så vise et eller andet ala, se næste 25 eller noget i den stil.. er åben for forslag :)

$pr_side = "20"; //Definerer antal resultater pr. side

$s = (isset($_GET['s']) ? intval($_GET['s']) : 0); // Så er der også input-validering "NY KODE"

if (!isset($s))
{
    $s = "0"; //Tjekker om $s - som står for start - er sat, hvis ikke sættes den
}

if(!isset($_GET['selectName']) || $_GET['selectName']=="") {
    $g_total = mysql_query("select count(id) as total from salgAfProdukt
    WHERE gruppe LIKE '%".$_GET['gruppe']."%' AND (produkt LIKE '%".$_GET['search']."%' OR supplerendeTekst LIKE '%".$_GET['search']."%')") or die(mysql_error());
} else {
    $g_total = mysql_query("select count(id) as total from salgAfProdukt
    WHERE gruppe LIKE '%".$_GET['gruppe']."%' AND (produkt LIKE '%".$_GET['search']."%' OR supplerendeTekst LIKE '%".$_GET['search']."%')
    AND salgAfProdukt.postNr BETWEEN LEFT('".$_GET['selectName']."',4) AND RIGHT('".$_GET['selectName']."',4)
    AND kategori LIKE '%".$_GET['selectKategori']."%'") or die(mysql_error());
}

$total = mysql_result($g_total,0);
if($total>$pr_side)
{
if ($total > $_GET['s']+3){
##
#Find ud af om derskal være et Forrige link
##
if ($_GET['s'] >= $pr_side) { //Tjekker om værdien af $s er større eller lig $pr_side
    $previous_s = $_GET['s']-$pr_side; //Regner ud hvor mysql skal starte hvis forrige side kaldes
    echo "<a href='?s=$previous_s&search=$_GET[search]&selectKategori=$_GET[selectKategori]&selectName=$_GET[selectName]&gruppe=$_GET[gruppe]'><font color=\"#4682B4\">Forrige</font></a> "; //Udskriver linket
}

##
#Find ud af hvis/hvor mange sider der er rows til
##
$page = 1; //Definerer hvor sidetal skal starte
for($start=0; $total > $start; $start=$start+$pr_side){ //For-løkke der kører indtil der ikke er nok rows til en side mere
    if ($start != $_GET['s']) { //Tjekker om linket vil komme til at pege på den side man er på
        echo "<a href='?s=$start&search=$_GET[search]&selectKategori=$_GET[selectKategori]&selectName=$_GET[selectName]&gruppe=$_GET[gruppe]'><font color=\"#4682B4\">$page</font></a> "; //...hvis ikke, udskrives link med værdien af $page
    } else { //Ellers, dvs. hvis linket vil pege på den side man er på..
        echo "<font color=\"#000000\">$page </font>"; //...udskrives værdien af $page bare, altså ikke som link
    }
    $page++; //Lægger en til $page til næste gang løkken køres
}

##
#Find ud af om der skal være et næste link
##
if ($total > $_GET['s']+$pr_side) { //Tjekker om der er flere sider
    $next_s = $_GET['s']+$pr_side; //Regner ud hvor mysql skal starte hvis næste side kaldes
    echo "<a href='?s=$next_s&search=$_GET[search]&selectKategori=$_GET[selectKategori]&selectName=$_GET[selectName]&gruppe=$_GET[gruppe]'><font color=\"#4682B4\">Næste</font></a>"; //Udskriver linket "næste"
Avatar billede jakobdo Ekspert
23. marts 2006 - 07:48 #1
Hvad mener du præcist med max 25?
Du har jo: $pr_side = "20";
Er det ikke bare at ændre den til 25?
Avatar billede JJ77 Juniormester
23. marts 2006 - 14:11 #2
Det var ikke lige det jeg mente..:) Det er selve linksene i pagingen, der maks skal være 25 af. Hvis der fx er rigtig mange annoncer og der er over 25 sider (med 20 annoncer pr side), så bliver paging linksene vist på flere linier hvilket ikke er optimalt rent designmæssigt:)
Forrige 1 2 3 4 5 ... 23 24 25 Næste
Avatar billede jakobdo Ekspert
24. marts 2006 - 23:47 #3
Det kan garanteret laves smukkere, men se her: http://www.codebreaker.dk/exp/697375.php
Avatar billede JJ77 Juniormester
26. marts 2006 - 01:59 #4
prøver lige at oprette den igen til lidt flere points.. ka sku ikke helt gennemskue den..:(
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