PHP scripts
Pagination Script
Niveau: Beginner
PHP versie: 4
Categorie: Beginners
Toelichting:
Hallo,
Omdat ik ergens op het forum een topic heb gezien over iemand die een pagination script nodig had, heb ik dit gemaakt.
Dit is simpel te gebruiken. Het enige wat je moet doen is de settings.php pagina aanpassen naar eigen wensen.
Hopelijk hebben jullie hier wat aan,
positieve feedback is welkom.
Code:
Settings.php :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
<?php /* Database instellingen */ # Hostnaam, meestal localhost $hostname = ""; # Gebruikersnaam $username = ""; # Wachtwoord $password = ""; # Database $database = ""; # Database connectie maken mysql_connect($hostname,$username,$password) or die(mysql_error()); # Database selecteren mysql_select_db($database); /* Einde database instellingen */ /* Script Instellingen */ # Maximaal aantal per pagina $eachPage = 10; # Sql met limit $sql = 'SELECT username FROM users limit '.($page*$eachPage).','.$eachPage; # Sql zonder limit $sql_count = 'SELECT username FROM users'; /* Einde script instellingen */ ?> |
.php pagina waar je script wil hebben:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
<?php error_reporting(E_ALL); # Kijken of er al een get bestaat if(isset($_GET['page']) AND ctype_digit($_GET['page'])) { # Set page limit begin $page = $_GET['page']; } else{ # Set page limit begin als 0 $page = 0; } # Include de instellingen include('settings.php'); # Query uitvoeren if(!$res = mysql_query($sql)) { # Fout in query trigger_error(mysql_error().'<br />In query: '.$sql); } elseif(mysql_num_rows($res) == 0) { # Geen resultaat uit query echo 'Geen resultaten gevonden'; } else { # Iedere record uitvoeren while($row = mysql_fetch_assoc($res)) { # Echo de username van iedere gebruiker echo $row['username'].'<br />'; } if($res = mysql_query($sql_count)) { # Aantal resultaten $results = mysql_num_rows($res); } # Aantal pagina's $pages = ceil($results / $eachPage); # Vorige knop maken if($page > 0) { echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.($page-1).'">[Vorige]</a>'; } else{ echo '[Vorige]'; } # Pagina's maken for($i = 1; $i <= $pages; $i++) { # Pagina cijfer linkjes aanmaken echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.($i-1).'">'.$i.'</a>'; } # Volgende knop maken if(($page+1) <= ($results/$eachPage)) { echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.($page+1).'">[Volgende]</a>'; } else{ echo '[Volgende]'; } } ?> |
Meer PHP scripts in deze categorieReacties
Voeg ook een reactie toe.
SanThe schreef op 30.01.2010 20:02
Even een opmerking.
Maak van dit
Even dit, dan hoef je het niet meer aan te passen.
Even een opmerking.
Maak van dit
|
1 2 3 4 |
<?php # Sql met limit, deze moet je zelf aanpassen, let er wel op dat de limit erin blijft staan! $sql = 'SELECT username FROM users limit '.($page*10).','.$eachPage; ?> |
Even dit, dan hoef je het niet meer aan te passen.
|
1 2 3 4 |
<?php # Sql met limit $sql = 'SELECT username FROM users limit '.($page*$eachPage).','.$eachPage; ?> |
Yearupie schreef op 30.01.2010 20:11
oh.. foutje eruit gehaald.
oh.. foutje eruit gehaald.
Pim schreef op 30.01.2010 21:46
Dit kan je toch met wat kleine wijzigingen in een class stoppen, zodat hij een stuk makkelijker in een site te integreren is?
In getPage() kan je de limit achter de sql plakken.
EDIT: Ook kan je in de sql 2x %d zetten die je dan met sprintf vervangt met de goede waarden.

Gewijzigd op 30.01.2010 22:33 door Pim
Dit kan je toch met wat kleine wijzigingen in een class stoppen, zodat hij een stuk makkelijker in een site te integreren is?
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php class Paginator { private $_db, $_sql, $_itemsPerPage, $_pageNumber; public function __construct($db, $sql, $itemsPerPage = 10); public function setPageNumber($nr); public function getPage(); public function showControls(); } ?> |
In getPage() kan je de limit achter de sql plakken.
EDIT: Ook kan je in de sql 2x %d zetten die je dan met sprintf vervangt met de goede waarden.

Gewijzigd op 30.01.2010 22:33 door Pim
yorick17 schreef op 31.01.2010 00:12
ik geloof dat ikzelf een script gebruik dat makelijker te integreren is, ik zal het een keer posten hierzo.
ik geloof dat ikzelf een script gebruik dat makelijker te integreren is, ik zal het een keer posten hierzo.
Marcel K schreef op 31.01.2010 22:11
ooit hier eens geplaatst:
http://www.phphulp.nl/php/scripts/4/631/
ooit hier eens geplaatst:
http://www.phphulp.nl/php/scripts/4/631/
Voeg een reactie toe
Alleen leden mogen reacties toevoegen. Dit i.v.m. het vele spam die we de laatste tijd hebben gekregen. Je kunt je registreren op de registratie pagina. Ben je al lid? Dan kun je inloggen aan de bovenkant van de website.
Ga naar het overzicht met PHP scripts.
