op http://81.30.70.233/~dnp/ staan heel veel items, en zoals je ziet levert dat tot nu toe 32 pagina's op, en dat worden er steeds meer. Onhandig! Mooier zou zijn als je ziet
ik heb ooit zoiets geschreven, heel specifiek voor 1 website, geen commentaar toegevoegd, en nu niet de tijd om het wat gebruiks-vriendelijker te maken,
Ik moest iets soorts geleik hebben. Als je het op meerdere plaatsen wilt gebruiken op 1 website zou ik hem ombouwen met functies. Ben ik ook nog van plan maar vandaag geen tijd meer voor. :p Sorry voor het Engels, is iets voor mezelf en dan doe ik niet aan Nederlands.
<?php
/*--------------------------------------------------------------------------------------------------------------------------
(§) Pagination | Settings.
--------------------------------------------------------------------------------------------------------------------------*/
/*---- INFO! ---->
Make sure the menu length is an uneven number.
*/
#| Maximum length of the menu.
$menu_length = 5;
#| Menu's divider.
$menu_divider = ' | ';
/*--------------------------------------------------------------------------------------------------------------------------
(§) Pagination | Page count.
--------------------------------------------------------------------------------------------------------------------------*/
// Hier moet je je eigen code plaatsen voor het het berekenen van het aantal pagina's,
$page_count = 32;
/*--------------------------------------------------------------------------------------------------------------------------
(§) Pagination | Validate the supplied current page. " $_GET['page'] "
--------------------------------------------------------------------------------------------------------------------------*/
#| Current page.
$current_page = (isset($_GET['page']) and in_array($_GET['page'], range(1, $page_count))) ? $_GET['page'] : 1 ;
/*--------------------------------------------------------------------------------------------------------------------------
(§) Pagination | Menu's range.
--------------------------------------------------------------------------------------------------------------------------*/
/*---- INFO! ---->
Calculate the menu's range.
*/
#| Calculate the menu's middle point.
$mid_point = floor($menu_length / 2 );
#| Calculate the menu's range.
if($page_count < $menu_length){
#| Not enough pages for the fancy stuff.
$menu_range = range(1, $page_count);
}
elseif($current_page > ($page_count - $mid_point)){
#| Last couple of pages.
$menu_range = range(($page_count - $menu_length) , $page_count);
}
elseif($current_page > $mid_point){
#| Middle pages.
$menu_range = range(($current_page - $mid_point), ($current_page + $mid_point));
}
else{
#| First couple of pages.
$menu_range = range(1, $menu_length);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Pagination :: Demo</title>
</head>
<body>
<?php
/*--------------------------------------------------------------------------------------------------------------------------
(§) Video's weergeven.
--------------------------------------------------------------------------------------------------------------------------*/
// Hier je while loop met video's.
/*--------------------------------------------------------------------------------------------------------------------------
(§) Pagination | Previous page
--------------------------------------------------------------------------------------------------------------------------*/
if($current_page > 1){
echo '<a href="?page='.($current_page - 1).'"><<</a> ';
}
/*--------------------------------------------------------------------------------------------------------------------------
(§) Pagination | Numeric menu.
--------------------------------------------------------------------------------------------------------------------------*/
#| Set " $menu " array for storing all the menu's items.
$menu = array();
#| Create all the menu's items.
foreach($menu_range as $page){
$menu[] = ($page == $current_page) ? '(<a href="?page='.$page.'">'.$page.'</a>) ' : '<a href="?page='.$page.'">'.$page.'</a>' ;
}
#| Display the menu.
echo implode($menu_divider, $menu);
/*--------------------------------------------------------------------------------------------------------------------------
(§) Pagination | Next page.
--------------------------------------------------------------------------------------------------------------------------*/
if($current_page < $page_count){
echo ' <a href="?page='.($current_page + 1).'">>></a>';
}
?>
</body>
</html>
Beiden zien er mooi uit, maar waar plaats je dan de data die weergegeven moet worden? Overigens heb ik op de link die ik bovenaan dit onderwerp gaf deze code:
<?php
# 10-10-2006
# pagina nummering v1.0
# G. de Rover
# GDRmedia
# [email protected]
//
// welke pagina er geshowed moet worden
$pag = $_GET['pag'];
// eerste bezoek moet 0 zijn.
if($pag == '1' || $pag == 1){
$pag = 0;
}
// het aantal resultaten per pagina.
$showRecords= 3;
//
// connectie settings
$myServer = 'localhost';
$myDataBase = 'xxx';
$myUser = 'xxxx';
$myPass = 'xxxx';
//
$myConn = mysql_connect($myServer, $myUser, $myPass);
$select = mysql_select_db($myDataBase, $myConn);
//
$query = 'SELECT * FROM dnp2 ORDER BY Datum DESC';
$results = mysql_query($query) or die(mysql_error());
$num_rows = mysql_num_rows($results);
//
$pages = $num_rows / $showRecords;
//
if($pages>1){
$myPage = $pag * $showRecords;
//
$query = 'SELECT * FROM dnp2 ORDER BY Datum DESC LIMIT '.$myPage.', '.$showRecords;
$results = mysql_query($query) or die(mysql_error());
}
//output:
echo '<div class="divpaginatelling">';
// checkt of er uberhaubt wel meerdere pagina's zijn.
if($pages > 1){
for($i=1; $i<=floor($pages); $i++){
echo ' | <a href='.$_SERVER['PHP_SELF'].'?pag='.$i.'>'.$i.'</a>';
}
echo ' |<br/></div><br/>';
}
// spuug de gewenste data uit.
while ($row = mysql_fetch_array($results)) {
echo ' <div class="geheel">
<div class="linkerkolom">
<div class="bovenlinks">
<div class="titel"><div class="id">( '.$row['ID'].' ) </div> '.$row['Titel'].'</div>
<div class="datum">'.$row['Datum'].'</div>
</div><br>
<div class="onderlinks">
<div class="bericht"><br><b>'.$row['Plaats'].'</b> - '.$row['Bericht'];
ETC....
Als ik op http://81.30.70.233/~dnp/ kijk heb je het MySQL gedeelte al. Ik heb het commentaar iets aangepast, je kunt mijn code gewoon als een nieuwe pagina opslaan en bekijken voor de werking, je moet het iets uit elkaar halen en in jouw website bouwen. maar zo onduidelijk kan het toch niet zijn?
Warning: Division by zero in /home/dnp/domains/dnp.nu/public_html/tester.php on line 193
en bovendien pakt ie de ID niet, want de mappen worden ook niet correct uitgelezen (de mapnamen zijn gelijk aan de idnamen. Toch leest hij wel 32 pagina's, wat precies klopt met het orginele script...