Avatar billede JJ77 Juniormester
16. marts 2006 - 17:21 Der er 21 kommentarer og
1 løsning

denne paging virker ikke med Globals=off

Nogen som kan se hvorfor at nedenstående paging ikke virker når globals er slået fra?



$total = mysql_result($g_total,0);
if($total>$pr_side)
{
if ($total > $s+5){
##
#Find ud af om derskal være et Forrige link
##
if ($s >= $pr_side) { //Tjekker om værdien af $s er større eller lig $pr_side
    $previous_s = $s-$pr_side; //Regner ud hvor mysql skal starte hvis forrige side kaldes
    echo "<a href='?s=$_GET[previous_s]'><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 != $s) { //Tjekker om linket vil komme til at pege på den side man er på
        echo "<a href='?s=$start&search=$_GET[search]&selectName=$_GET[selectName]'><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 > $s+$pr_side) { //Tjekker om der er flere sider
    $next_s = $s+$pr_side; //Regner ud hvor mysql skal starte hvis næste side kaldes
    echo "<a href='?s=$next_s&search=$_GET[search]&selectName=$_GET[selectName]'><font color=\"#4682B4\">Næste</font></a>"; //Udskriver linket "næste"
Avatar billede jensgram Nybegynder
16. marts 2006 - 17:36 #1
Et hurtigt bud er at erstatte $s med $_GET['s']
Avatar billede jensgram Nybegynder
16. marts 2006 - 17:37 #2
Eller - endnu lettere:

Linie 1:

$s = (isset($_GET['s']) ? intval($_GET['s']) : 0); // Så er der også input-validering
...
$total = mysql_result($g_total,0);
Avatar billede JJ77 Juniormester
16. marts 2006 - 17:44 #3
hmmm.. ok.. forstår nu ikke lige det sidste du skrev.. jeg kan ikke lokke dig til at sætte det ind hvor det skal stå, vel :) pleace
Avatar billede jensgram Nybegynder
16. marts 2006 - 17:55 #4
Jo, jeg mente bare, at det skal stå aller-øverst.

$s = (isset($_GET['s']) ? intval($_GET['s']) : 0); // Så er der også input-validering
$total = mysql_result($g_total,0);
if($total>$pr_side)
{
if ($total > $s+5){
##
#Find ud af om derskal være et Forrige link
##
if ($s >= $pr_side) { //Tjekker om værdien af $s er større eller lig $pr_side
    $previous_s = $s-$pr_side; //Regner ud hvor mysql skal starte hvis forrige side kaldes
    echo "<a href='?s=$_GET[previous_s]'><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 != $s) { //Tjekker om linket vil komme til at pege på den side man er på
        echo "<a href='?s=$start&search=$_GET[search]&selectName=$_GET[selectName]'><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 > $s+$pr_side) { //Tjekker om der er flere sider
    $next_s = $s+$pr_side; //Regner ud hvor mysql skal starte hvis næste side kaldes
    echo "<a href='?s=$next_s&search=$_GET[search]&selectName=$_GET[selectName]'><font color=\"#4682B4\">Næste</font></a>"; //Udskriver linket "næste"
Avatar billede JJ77 Juniormester
16. marts 2006 - 18:16 #5
Ka sq ikke rigtigt få det til at virke, men måske at det er fordi der er lidt mere kode, som jeg ikke troede havde nogen betydning.. har lige indsat det manglende, så du kan se det hele :)

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

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 produkt LIKE '%".$_GET['search']."%'") or die(mysql_error());
} else {
    $g_total = mysql_query("select count(id) as total from salgAfProdukt WHERE produkt 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 > $s+5){
##
#Find ud af om derskal være et Forrige link
##
if ($s >= $pr_side) { //Tjekker om værdien af $s er større eller lig $pr_side
    $previous_s = $s-$pr_side; //Regner ud hvor mysql skal starte hvis forrige side kaldes
    echo "<a href='?s=$_GET[previous_s]'><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 != $s) { //Tjekker om linket vil komme til at pege på den side man er på
        echo "<a href='?s=$start&search=$_GET[search]&selectName=$_GET[selectName]'><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 > $s+$pr_side) { //Tjekker om der er flere sider
    $next_s = $s+$pr_side; //Regner ud hvor mysql skal starte hvis næste side kaldes
    echo "<a href='?s=$next_s&search=$_GET[search]&selectName=$_GET[selectName]'><font color=\"#4682B4\">Næste</font></a>"; //Udskriver linket "næste"
Avatar billede JJ77 Juniormester
16. marts 2006 - 18:41 #6
YES.. fik det til at virke.. brugte din GET på de der s´er du snakkede om.. Ser det rigtigt ud som jeg har gjort nu? vil bare være sikker :) og smider du ikke et svar så du kan få dine point. takker

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

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 produkt LIKE '%".$_GET['search']."%'") or die(mysql_error());
} else {
    $g_total = mysql_query("select count(id) as total from salgAfProdukt WHERE produkt 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']+5){
##
#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=$_GET[previous_s]'><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]&selectName=$_GET[selectName]'><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]&selectName=$_GET[selectName]'><font color=\"#4682B4\">Næste</font></a>"; //Udskriver linket "næste"
Avatar billede JJ77 Juniormester
16. marts 2006 - 19:14 #7
hmmmm. kan det passe at der er noget galt med koden.. får nå man går tilbage til side 1 i pagingen, viser den blidselig alle igen.. hvis man fx har søgt på alle annoncer som indeholder et "a".. så skulle den gerne kunne huske dem selv om man går tilbage til 1 side:(
Avatar billede jensgram Nybegynder
16. marts 2006 - 19:36 #8
Ja, det ser umiddelbart fint ud.

Dine links bør også medgive search og selectName.

Har du et eksempel på output, som man kan se / prøve?
Avatar billede JJ77 Juniormester
16. marts 2006 - 19:46 #9
Det ser nu ud som nedenstående.. kan du se hvilke variabler som skal ændres til GET? for jeg kan ikke..



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

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 produkt LIKE '%".$_GET['search']."%'") or die(mysql_error());
} else {
    $g_total = mysql_query("select count(id) as total from salgAfProdukt WHERE produkt 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']+5){
##
#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=$_GET[previous_s]'><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]&selectName=$_GET[selectName]'><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]&selectName=$_GET[selectName]'><font color=\"#4682B4\">Næste</font></a>"; //Udskriver linket "næste"
Avatar billede jensgram Nybegynder
16. marts 2006 - 19:49 #10
echo "<a href='?s=$_GET[previous_s]'><font color=\"#4682B4\">Forrige</font></a> "; //Udskriver linket

->

    echo "<a href='?s=previous_s'><font color=\"#4682B4\">Forrige</font></a> "; //Udskriver linket


Det er den eneste fejl jeg lige kan se...
Avatar billede JJ77 Juniormester
16. marts 2006 - 19:50 #11
Jeg kan se så meget som at der ihvertfald er problemer hvis man trykker på linket Forrige.. så starter den helt forfra fra side 1 i pagingen..
Avatar billede JJ77 Juniormester
16. marts 2006 - 19:57 #12
Fuck hvor er det noller.. skal jeg ikke prøve at indsætte min oprindelige pagingkode her? vil det hjælpe? så kan du se udgangspunktet, og det er måske nemmere at gå ud fra i stedet for alt det jeg har rodet rundt:)
Avatar billede JJ77 Juniormester
16. marts 2006 - 20:01 #13
og så sætter jeg lige pointsene lidt op:)
Avatar billede JJ77 Juniormester
16. marts 2006 - 20:12 #14
Jeg har paging to steder på min side.. øverst og nederst.. jeg laver en linie der hvor første paging slutter og den næste starter.. :) har sat pointsene op til 200 nu :) håber at det hjælper lidt på det.. det er sku ikke nemt:(


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

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 produkt LIKE '%".$_GET['search']."%'") or die(mysql_error());
} else {
    $g_total = mysql_query("select count(id) as total from salgAfProdukt WHERE produkt 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']+5){
##
#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=$_GET[previous_s]'><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]&selectName=$_GET[selectName]'><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]&selectName=$_GET[selectName]'><font color=\"#4682B4\">Næste</font></a>"; //Udskriver linket "næste"

-------------------------------------------------------------------------

$total = mysql_result($g_total,0);
if($total>$pr_side)
{

##
#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=$_GET[previous_s]'><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]&selectName=$_GET[selectName]'><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]&selectName=$_GET[selectName]'><font color=\"#4682B4\">Næste</font></a>"; //Udskriver linket "næste"
Avatar billede jensgram Nybegynder
16. marts 2006 - 20:16 #15
#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=$_GET[previous_s]'><font color=\"#4682B4\">Forrige</font></a> "; //Udskriver linket
}


->


#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=$_GET[previous_s]&search=$_GET[search]&selectName=$_GET[selectName]'><font color=\"#4682B4\">Forrige</font></a> "; //Udskriver linket
}


Løser det "forrige"-problemet?
Avatar billede jensgram Nybegynder
16. marts 2006 - 20:17 #16
Hvis dette ikke virker, så - ja - indsæt den originale kode. Så starter vi forfra.
Avatar billede JJ77 Juniormester
16. marts 2006 - 20:23 #17
har du selv mysql, så ka jeg lige prøve at sende dig databasen + indhold, så du måske bedre kan se, eller vil du hellere have adgang til min?
Avatar billede jensgram Nybegynder
16. marts 2006 - 20:24 #18
Nej, databasen er ligegyldig. Kunne bare godt tænke mig at se den komplette kode, hvor paging'en er.

Mit problem er, at jeg sidder med en "fremmed" computer, så jeg har ikke så let ved at teste...
Avatar billede JJ77 Juniormester
16. marts 2006 - 20:27 #19
kan jeg ikke lige sende dig en mail med mit brugernavn samt kode til mit webhotel?
så kan du bare logge ind via ftp..
Avatar billede jensgram Nybegynder
16. marts 2006 - 20:30 #20
Nej, ved du hvad, jeg stopper for i aften. Sorry. Held og lykke med fejlfindingen.

- Jens Gram
Avatar billede JJ77 Juniormester
16. marts 2006 - 20:30 #21
ok.. øv bøv.. men tak for dit forsøg:)
Avatar billede JJ77 Juniormester
16. marts 2006 - 23:55 #22
nå. men så opretter jeg den lige igen.. :(
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