Paginanummering
Een script om paginanummering op je pagina te zetten inclusief het ophalen. Functie voor de navigatie De eerste functie is voor het navigeren met de paginanummers. De functie roep je op de volgende manier aan: paginanummering("pagina.php?pagina=", 5, "pagina", "SELECT id FROM tabel"); Als je ook nog een waarde achter de GET wilt zetten (bijvoorbeeld in een link: #resultaat), zet je die nog achter de query. Echo'en hoeft niet, gewoon paginanummering(); Functie om resultaten op te halen Deze functie vond ik ook handig dus heb ik deze er maar bij gemaakt, hij checkt de input en kijkt of ie valid is. Zo roep je die aan: $sql = pages("SELECT * FROM tabel ORDER BY id DESC", 5, "pagina"); Dus eerst de query, dan het aantal resultaten en dan de GET waarde. Rate & Comment :-)
<?php
/*
Gemaakt door Roel van de Water
Paginanummering script
*/
function paginanummering($link, $records, $get, $query, $achter = '') {
// Functie aanmaken voor het nummeren
$totaal = mysql_num_rows(mysql_query($query));
if (floor($totaal / ($records + 1)) > 0) {
// Controleren of de input geldig is
$huidig = (isset($_GET[$get]) && ctype_digit($_GET[$get]) && $_GET[$get] >= 0 && $_GET[$get] < ceil($totaal / $records)) ? $_GET[$get] : 0;
$start = ($huidig - 3 >= 0) ? $huidig - 3 : 0;
$end = ($huidig + 3 < ceil($totaal / $records)) ? $huidig + 4 : ceil($totaal / $records);
// Begin van het nummeren
if ($huidig > 0) {
echo '<a href="'.$link.($huidig - 1).$achter.'">«</a> ';
}
if ($start > 0) {
echo '<a href="'.$link.'0'.$achter.'" style="font-weight: bold">1</a> ... ';
}
// Kijken of $i de huidige pagina is of niet
for ($i = $start; $i < $end; $i++) {
echo ($i == $huidig) ? '<span style="text-decoration: underline">'.($i + 1).'</span> ' : '<a href="'.$link.$i.$achter.'">'.($i + 1).'</a> ';
}
if ($end < ceil($totaal / $records)) {
echo ' ... <a href="'.$link.(ceil($totaal / $records) - 1).$achter.'" style="font-weight: bold">'.ceil($totaal / $records).'</a>';
}
// Einde van het nummeren
if ($huidig + 1 < ceil($totaal / $records)) {
echo ' <a href="'.$link.($huidig + 1).$achter.'">»</a>';
}
}
}
function pages($query, $records, $get) {
// Functie aanmaken voor het ophalen van data
$int = (isset($_GET[$get]) && ctype_digit($_GET[$get]) && $_GET[$get] >= 0) ? $_GET[$get] : $records;
if ($int > floor(mysql_num_rows(mysql_query($query)) / $records) || !isset($_GET[$get])) {
// Alles is valid, return de geldige query
return mysql_query($query." LIMIT ".$records);
} else {
// Fout in de GET, standaard query
return mysql_query($query." LIMIT ".($int * $records).", ".$records);
}
}
?>
Reacties
0