heh, det var jo nemt. Jeg tager en løbetur, imens du fixer scriptet :)
Nå, paging er forholdsvist nemt.
MySQL har en feature, som giver dig muilghed for at begrænse antallet af rækker. Fx. LIMIT 8. Så kommer der max 8 rækker. Men, man kan også angive et offset, så hvis vi vil have rækkerne 2-10, kan vi skrive:
LIMIT 2,8
2=hvor vi starter
8=antallet af rækker.
$person = mysql_query("SELECT * FROM RS_Medarbejder");
vil hente alle rækker
$person = mysql_query("SELECT * FROM RS_Medarbejder LIMIT 8");
vil vise de første 8. (rækkerne 1-8 - altså side 1)
$person = mysql_query("SELECT * FROM RS_Medarbejder LIMIT 0,8");
er det samme som før. Side to kan så skrives som
$person = mysql_query("SELECT * FROM RS_Medarbejder LIMIT 8,8");
Vi springer de første 8 over - og viser de næste 8... Side 3 er så LIMIT 16,8 .. osv. osv..
Lad os sige, vi har en variable der hedder side (Dette skal gøres øverst på siden)
if( isset($_GET['side']) && ctype_digit($_GET['side']) ) // hvis 'side' er angivet og består kun af tal
$side = $_GET['side'];
else
$side = 1;
Hvis starter med side 1, hvis intet sidenummer er angivet eller hvis det er et ugyldigt sidenummer.
Side 1 skal så vise de første 8 (1-8) rækker, næste side skal så vise de næste 8 (9-16) rækker osv.... Dette kan vi gøre ved at:
$start=($side-1)*8;
fx:
side1 giver: $start=(1-1)*8 = 0.. Passer!
side2 giver: $start=(2-1)*8 = 8.. Passer!
side3 giver: $start=(3-1)*8 = 18.. Passer!
SQL'en skal så bare rettes;
$person = mysql_query("SELECT * FROM RS_Medarbejder LIMIT $start,8");
Hvis du kalder
http://www.larsskaarup.dk/randerssport/personale-test.phpbør den vise side 1
http://www.larsskaarup.dk/randerssport/personale-test.php?side=testbør stadig vise side 1
http://www.larsskaarup.dk/randerssport/personale-test.php?side=2viser så side to..
-----------------------------------------------
Lad mig samle koden her:
if( isset($_GET['side']) && ctype_digit($_GET['side']) )
$side = $_GET['side'];
else
$side = 1;
$start=($side-1)*8;
$person = mysql_query("SELECT * FROM RS_Medarbejder LIMIT $start,8");
... resten her..
-------------------
Strengt taget, behøver du ikke i din while at have ($i < 8) - da der aldrig vil være mere end 8 rækker (da vi bruger LIMIT i sql).