Scripts
Paginanummering
Omdat het andere pagina nummers script niet helemaal naar behoren scheen te werken heb ik er even een gemaakt die wel werkt. Deze manier gebruik ik zelf altijd op mijn sites en werkt prima voor mij. Ik heb er gelijk maar even een voorbeeld page van gemaakt zodat jullie um ook kunnen testen. Belangrijk in deze pagina is de query op het moment dat je dingen uit de database gaat trekken. De LIMIT in de query bepaald wat er op de page gezien moet laten worden. Enjoy Grtz NaNo
paginanummering
[code]
<?php
#--> setting enviroment
error_reporting(E_ALL);
ini_set("display_errors", 1);
#--> sessting some vars voor easy editing
$mysql_host = "localhost";
$mysql_user = "";
$mysql_pass = "";
$mysql_db = "";
$mysql_table = "artikelen";
#--> connecten met mysql en db selecteren
mysql_connect($mysql_host, $mysql_user, $mysql_pass);
mysql_select_db($mysql_db);
#--> kijken of er al iets gekozen is in de url
$page = isset($_GET['page']) ? $_GET['page'] : 1;
$messagePerPage = isset($_GET['messagePerPage']) ? $_GET['messagePerPage'] : 15;
#--> tellen van de records in de database
$query = mysql_query("SELECT count(*) FROM ".$mysql_table);
$totalMessages = mysql_result($query, 0, 0);
#--> aantal pagina nummers uitrekenen en offset voor de limit query bepalen
$pageNumbers = ceil($totalMessages / $messagePerPage);
$offset = ($page -1) * $messagePerPage;
#--> array met de options voor de dropdownbox
$dropdown = array( $messagePerPage => $messagePerPage,
'---' => $messagePerPage,
5 => 5,
10 => 10,
15 => 15,
20 => 20,
25 => 25,
30 => 30,
40 => 40,
'all' => $totalMessages);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Page Numbers met dorpdownbox</title>
<link href="style.css" rel="stylesheet" type="text/css">
<SCRIPT type="text/javascript" language="JavaScript">
<!--
function openURI() {
var control = document.form.documentkeuze;
if (control.options[control.selectedIndex].value != ' ') {
location.href = control.options[control.selectedIndex].value;
}
}
-->
</SCRIPT>
</head>
<body>
<center>
<table width="400" cellpadding="0" cellspacing="0">
<tr>
<td class="top" align="left" valign="top">
<?php
#--> pagenummers echo-en style 1 (numbers)
if ($pageNumbers > 1)
{
echo 'Pagina<br> <small class="pipes">|</small> ';
for ($i = 1; $i <= $pageNumbers; $i++)
{
if ($page == $i)
{
echo '<span class="selectedpage">'.$i.'</span> <small class="pipes">|</small> ';
}
else
{
echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'&messagePerPage='.$messagePerPage.'" title="Go to page '.$i.'">'.$i.'</a> <small class="pipes">|</small> ';
}
}
}
else
{
echo '<small style="color:#999;">no page numbers yet</small>';
}
?>
</td>
<td class="top" align="right" valign="top">
<?php
#--> de dropdownbox voor het aantal berichten/artikelen per pagina
?>
<form name="form">
Berichten per pagina :
<select name="documentkeuze" onchange="openURI()">
<?php
foreach($dropdown as $key => $value)
{
echo '<option value="'.$_SERVER['PHP_SELF'].'?page=1&messagePerPage='.$value.'" > '.$key.'</option>';
}
?>
</select>
</form>
</td>
</tr>
</table>
<hr>
<?php
#--> uit de database trekken en echo-en
$sql = "SELECT * FROM `".$mysql_table."` ORDER BY `id` DESC LIMIT ".$offset.",".$messagePerPage;
$db_data = mysql_query($sql);
if (mysql_num_rows($db_data) >= 1)
{
while ($row = mysql_fetch_array($db_data))
{
echo ucfirst($row['message']).'<br>';
}
}
else
{
echo 'er zijn geen berichten<br><br>';
}
?>
<br>
<hr>
<div class="bottom">
<small>
<?php
#--> pagina nummers style 2 (prev / next)
if ($page > 1)
{
echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.($page - 1).'&messagePerPage='.$messagePerPage.'" title="Go to page '.($page - 1).'"><< Prev</a>';
}
else
{
echo '<span style="color:#bbb;"><< Prev</span>';
}
echo ' ';
if ($page < $pageNumbers)
{
echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.($page + 1).'&messagePerPage='.$messagePerPage.'" title="Go to page '.($page + 1).'">Next >></a>';
}
else
{
echo '<span style="color:#bbb;">Next >></span>';
}
?>
</small>
</div>
</center>
<br><br>
</body>
</html>[/code]
====================
sql:
[code]CREATE TABLE `artikelen` (
`id` int(10) unsigned NOT NULL auto_increment,
`message` text,
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=56 ;
INSERT INTO `artikelen` VALUES (1, 'artikel 01');
INSERT INTO `artikelen` VALUES (2, 'artikel 02');
INSERT INTO `artikelen` VALUES (3, 'artikel 03');
INSERT INTO `artikelen` VALUES (4, 'artikel 04');
INSERT INTO `artikelen` VALUES (5, 'artikel 05');
INSERT INTO `artikelen` VALUES (6, 'artikel 06');
INSERT INTO `artikelen` VALUES (7, 'artikel 07');
INSERT INTO `artikelen` VALUES (8, 'artikel 08');
INSERT INTO `artikelen` VALUES (9, 'artikel 09');
INSERT INTO `artikelen` VALUES (10, 'artikel 10');
INSERT INTO `artikelen` VALUES (11, 'artikel 11');
INSERT INTO `artikelen` VALUES (12, 'artikel 12');
INSERT INTO `artikelen` VALUES (13, 'artikel 13');
INSERT INTO `artikelen` VALUES (14, 'artikel 14');
INSERT INTO `artikelen` VALUES (15, 'artikel 15');
INSERT INTO `artikelen` VALUES (16, 'artikel 16');
INSERT INTO `artikelen` VALUES (17, 'artikel 17');
INSERT INTO `artikelen` VALUES (18, 'artikel 18');
INSERT INTO `artikelen` VALUES (19, 'artikel 19');
INSERT INTO `artikelen` VALUES (20, 'artikel 20');
INSERT INTO `artikelen` VALUES (21, 'artikel 21');
INSERT INTO `artikelen` VALUES (22, 'artikel 22');
INSERT INTO `artikelen` VALUES (23, 'artikel 23');
INSERT INTO `artikelen` VALUES (24, 'artikel 24');
INSERT INTO `artikelen` VALUES (25, 'artikel 25');
INSERT INTO `artikelen` VALUES (26, 'artikel 26');
INSERT INTO `artikelen` VALUES (27, 'artikel 27');
INSERT INTO `artikelen` VALUES (28, 'artikel 28');
INSERT INTO `artikelen` VALUES (29, 'artikel 29');
INSERT INTO `artikelen` VALUES (30, 'artikel 30');
INSERT INTO `artikelen` VALUES (31, 'artikel 31');
INSERT INTO `artikelen` VALUES (32, 'artikel 32');
INSERT INTO `artikelen` VALUES (33, 'artikel 33');
INSERT INTO `artikelen` VALUES (34, 'artikel 34');
INSERT INTO `artikelen` VALUES (35, 'artikel 35');
INSERT INTO `artikelen` VALUES (36, 'artikel 36');
INSERT INTO `artikelen` VALUES (37, 'artikel 37');
INSERT INTO `artikelen` VALUES (38, 'artikel 38');
INSERT INTO `artikelen` VALUES (39, 'artikel 39');
INSERT INTO `artikelen` VALUES (40, 'artikel 40');
INSERT INTO `artikelen` VALUES (41, 'artikel 41');
INSERT INTO `artikelen` VALUES (42, 'artikel 42');
INSERT INTO `artikelen` VALUES (43, 'artikel 43');
INSERT INTO `artikelen` VALUES (44, 'artikel 44');
INSERT INTO `artikelen` VALUES (45, 'artikel 45');
INSERT INTO `artikelen` VALUES (46, 'artikel 46');
INSERT INTO `artikelen` VALUES (47, 'artikel 47');
INSERT INTO `artikelen` VALUES (48, 'artikel 48');
INSERT INTO `artikelen` VALUES (49, 'artikel 49');
INSERT INTO `artikelen` VALUES (50, 'artikel 50');
INSERT INTO `artikelen` VALUES (51, 'artikel 51');
INSERT INTO `artikelen` VALUES (52, 'artikel 52');
INSERT INTO `artikelen` VALUES (53, 'artikel 53');
INSERT INTO `artikelen` VALUES (54, 'artikel 54');
INSERT INTO `artikelen` VALUES (55, 'artikel 55');[/code]
Reacties
0