Vorige / Volgende bij Resultaten [versie 1.2]
Ik heb dit script geschreven naar aanleiding van een bericht op het forum (http://www.phphulp.nl/forum/showtopic.php?id=724&cat=1). Het script werkt goed, alleen zou het nog uitgebreid kunnen worden met paginanummers. Nu is het gewoon een stukje script wat ik voorlopig in mijn eigen scriptlibrary bewaar! Het script zorgt ervoor dat je onderaan een pagina met resultaten van een query een Volgende en/of Vorige hyperlink krijgt als er meer resultaten zijn wat de query heeft opgehaald... Let bij het voorbeeld onderaan niet wat er op de pagina staat, ik moest even snel een tabelletje vullen! Edit: Ik heb versie 1.1 beschikbaar gesteld. In deze versie heb ik alle commentaar Engels gehouden, omdat het dan 'universeler' is. En omdat ik daar heel vaak mee programmeer.. :D In deze versie staan nu ook de pagina nummers die ik eerder in wilde bouwen. Het was uiteindelijk heel makkelijk, maar ja.. tijd heb ik altijd te kort.. :D Daarnaast heb ik ook de hyperlinks altijd laten staan, anders gaat de tekst zo springen. Als je niet verder kan staat de tekst er wel, maar doet de link het niet. Edit: Ik heb vandaag een kleine wijziging gemaakt aan het script. Deze heb ik maar tot versie 1.2 gemaakt. Ik heb de blokhaken om de paginanummers verwijderd. En verder heb ik een controle gemaakt op welke pagina een gebruiker zit. Het nummer van deze pagina heeft dan weer wel blokhaken en is in zijn totaliteit vet gedrukt.
<?php
/************************************************************************/
/* Previous/Next Script */
/* ==================== */
/* */
/* Copyright (c) 2004 by Elwin */
/* http://fratsloos.nl */
/* */
/* This program is free software. You can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 2 of the License. */
/* */
/* Version: 1.2 */
/* Changes: Changed the presentation of the pagenumbers (version 1.1), */
/* added a bold pagenumber for the page where the user is on. (by */
/* Elwin) */
/* */
/* Version History */
/* Version 1.1: Added pagenumbers which include a hyperlink to the page */
/* (by Elwin) */
/* Version 1.0: Default script wich includes the Previous / Next hyper- */
/* links (by Elwin) */
/************************************************************************/
// Connect to the Databaseserver
mysql_connect ("","","");
// Select the Database
mysql_select_db("");
// Variables
if(is_numeric($_GET['max'])) $max = $_GET['max'];
if(is_numeric($_GET['start'])) $start = $_GET['start'];
if (empty($max)) $max = 5; // $max is the maximum number of results per page
if (empty($start)) $start = 0; // This is the number to start the query at the right location [DO NOT EDIT]
// Calculate some stuff
$end = $start + $max; // This is for the query, gives the number for the LIMIT
$prev = $start - $max; // This number is for $start in the Previous-hyperlink
$next = $end; // This number is for $start in the Next-hyperlink
// Select everything from the table
$query = mysql_query("SELECT * FROM table ORDER BY id DESC LIMIT $start, $max") or die (mysql_error());
// Number of rows from $query
$num = mysql_num_rows($query);
if (empty($num))
{
echo "<p>There are no results.</p>";
}
else
{
while ($result = mysql_fetch_row($query))
{
// Show the results
echo "[$result[0]] $result[1]<br>\n";
}
echo "<p>\n";
// Check if $prev is higher than or equal to 0, if so add the Previous-hyperlink
if ($prev >= '0')
{
echo "[<a href=\"script.php?start=$prev&max=$max\">Previous</a>]\n";
} else {
echo "[Previous]\n";
}
// Count how many rows there are in the table
$count = mysql_fetch_row(mysql_query("SELECT count(*) FROM table"));
// Calculate on which page we are
$thispage = ceil($start/$max+1);
// If $count[0] is higher than $max, show the pagenumbers
if ($count[0] > $max)
{
// Calculate the amount of pages
$total = ceil($count[0]/$max);
for($i=0;$i<$total;$i++)
{
// The number to show has to be $1+1 (because $i starts with 0)
$number = $i+1;
// $start has to be $i * $max
$start = $i*$max;
// If thispage is equal to the number, the link has to be bold
if ($thispage == $number)
{
echo "<strong>[<a href=\"script.php?start=" . $start . "&max=" . $max . "\">" . $number . "</a>]</strong>\n";
} else {
echo "<a href=\"script.php?start=" . $start . "&max=" . $max . "\">" . $number . "</a>\n";
}
}
}
// If $count[0] is higher than $next, show the hyperlink
if ($count[0] > $next)
{
echo "[<a href=\"script.php?start=$next&max=$max\">Next</a>]\n";
} else {
echo "[Next]\n";
}
echo "</p>\n";
}
?>
Reacties
0