Paginanummering
Ik heb onderstaande code van PHP Hulp en geimplementeerd op mijn site.
Werkt prima, op één ding na.
Hij begint de pagina nummering met '0' i.p.v. '1'...
Kan iemand mij helpden en vertellen waar het 'fout' gaat ?
Gegevens uit de Db halen :
Code (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
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
<?php
// Pagina navigatie
// Bepalen hoeveel zendingen er zijn
$res1 = mysql_query("SELECT * FROM `klanten` WHERE klanten_bedrijf_link = '$bedrijf'");
$items_totaal = mysql_num_rows($res1);
if ( $items_totaal == 0 ) {
$items_totaal == 1 ;
}
// Filter aantal klanten per pagina
$aantal_per_pagina = $_REQUEST["items_per_pagina"];
if ( $aantal_per_pagina != "" ) {
$aantal_per_pagina_1 = $aantal_per_pagina;
} else {
$aantal_per_pagina_1 = "5" ;
}
$items_per_pagina = $aantal_per_pagina_1;
// Benodigede pagina's
$aantal_paginas = ceil($items_totaal / $items_per_pagina);
$aantal_paginas = $aantal_paginas - 1;
?>
// Pagina navigatie
// Bepalen hoeveel zendingen er zijn
$res1 = mysql_query("SELECT * FROM `klanten` WHERE klanten_bedrijf_link = '$bedrijf'");
$items_totaal = mysql_num_rows($res1);
if ( $items_totaal == 0 ) {
$items_totaal == 1 ;
}
// Filter aantal klanten per pagina
$aantal_per_pagina = $_REQUEST["items_per_pagina"];
if ( $aantal_per_pagina != "" ) {
$aantal_per_pagina_1 = $aantal_per_pagina;
} else {
$aantal_per_pagina_1 = "5" ;
}
$items_per_pagina = $aantal_per_pagina_1;
// Benodigede pagina's
$aantal_paginas = ceil($items_totaal / $items_per_pagina);
$aantal_paginas = $aantal_paginas - 1;
?>
Code om de paginanummering te maken (deze wordt via include in pagina geladen ):
Code (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
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
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
<td colspan="7" align="right" valign="middle">
<br /><br /><br />
[code]<?php
// get the current page or set a default
// $aantal_paginas = $aantal_paginas - 1;
if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) {
// cast var as int
$currentpage = (int) $_GET['currentpage'];
} else {
// default page num
$currentpage = 0;
} // end if
// if current page is greater than total pages...
if ($currentpage > $aantal_paginas) {
// set current page to last page
$currentpage = $aantal_paginas;
} // end if
// if current page is less than first page...
if ($currentpage < 1) {
// set current page to first page
$currentpage = 0;
} // end if
// the offset of the list, based on current page
$offset = ($currentpage - 1) * $aantal_per_pagina;
/****** build the pagination links ******/
// range of num links to show
$range = 3;
echo "<ul id=\"pagination-digg\">";
// if not on page 1, don't show back links
// if ($currentpage > 1) {
// get previous page num
echo " <li class=\"next\"><a href=?currentpage=0&items_per_pagina=".$aantal_per_pagina.">«« </a><li> ";
$prevpage = $currentpage - 1;
// show < link to go back to 1 page
echo " <li class=\"next\"><a href=?currentpage=" . $prevpage ."&items_per_pagina=".$aantal_per_pagina.">« </a><li> ";
// } // end if
// loop to show links to range of pages around current page
for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) {
// if it's a valid page number...
if (($x >= 0) && ($x <= $aantal_paginas)) {
// if we're on current page...
if ($x == $currentpage) {
// 'highlight' it but don't make a link
echo " <li class=\"active\">". $x . "</li> ";
// if not current page...
} else {
// make it a link
echo " <li><a href=?currentpage=". $x . "&items_per_pagina=".$aantal_per_pagina.">$x</a><li> ";
} // end else
} // end if
} // end for
// if not on last page, show forward and last page links
if ($currentpage != $aantal_paginas) {
// get next page
$nextpage = $currentpage + 1;
// echo forward link for next page
echo " <li class=\"next\"><a href=?currentpage=". $nextpage . "&items_per_pagina=".$aantal_per_pagina."> »</a></li> ";
echo " <li class=\"next\"><a href=?currentpage=". $aantal_paginas . "&items_per_pagina=".$aantal_per_pagina."> »»</a></li> ";
} // end if
/****** end build pagination links ******/
echo "</ul>";
?>
</td>
?>
<td colspan="7" align="right" valign="middle">
<br /><br /><br />
[code]<?php
// get the current page or set a default
// $aantal_paginas = $aantal_paginas - 1;
if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) {
// cast var as int
$currentpage = (int) $_GET['currentpage'];
} else {
// default page num
$currentpage = 0;
} // end if
// if current page is greater than total pages...
if ($currentpage > $aantal_paginas) {
// set current page to last page
$currentpage = $aantal_paginas;
} // end if
// if current page is less than first page...
if ($currentpage < 1) {
// set current page to first page
$currentpage = 0;
} // end if
// the offset of the list, based on current page
$offset = ($currentpage - 1) * $aantal_per_pagina;
/****** build the pagination links ******/
// range of num links to show
$range = 3;
echo "<ul id=\"pagination-digg\">";
// if not on page 1, don't show back links
// if ($currentpage > 1) {
// get previous page num
echo " <li class=\"next\"><a href=?currentpage=0&items_per_pagina=".$aantal_per_pagina.">«« </a><li> ";
$prevpage = $currentpage - 1;
// show < link to go back to 1 page
echo " <li class=\"next\"><a href=?currentpage=" . $prevpage ."&items_per_pagina=".$aantal_per_pagina.">« </a><li> ";
// } // end if
// loop to show links to range of pages around current page
for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) {
// if it's a valid page number...
if (($x >= 0) && ($x <= $aantal_paginas)) {
// if we're on current page...
if ($x == $currentpage) {
// 'highlight' it but don't make a link
echo " <li class=\"active\">". $x . "</li> ";
// if not current page...
} else {
// make it a link
echo " <li><a href=?currentpage=". $x . "&items_per_pagina=".$aantal_per_pagina.">$x</a><li> ";
} // end else
} // end if
} // end for
// if not on last page, show forward and last page links
if ($currentpage != $aantal_paginas) {
// get next page
$nextpage = $currentpage + 1;
// echo forward link for next page
echo " <li class=\"next\"><a href=?currentpage=". $nextpage . "&items_per_pagina=".$aantal_per_pagina."> »</a></li> ";
echo " <li class=\"next\"><a href=?currentpage=". $aantal_paginas . "&items_per_pagina=".$aantal_per_pagina."> »»</a></li> ";
} // end if
/****** end build pagination links ******/
echo "</ul>";
?>
</td>
?>
Alvast bedankt voor de reacties.
Ik heb hem niet helemaal doorgelopen maar verander de 0 in regel 14 en 25 eens naar een 1.
Bedankt voor je snelle reactie.
Dit zorgt er in ieder geval voor dat ik geen '0' pagina als link zie. Echter lost dit mijn probleem niet op.
Feitelijk komt het hier op neer dat de pagina telling begint op pagina '0' en niet op pagina '1'. De linkjes echter, beginnen bij pagina '1' en daardoor vallen de eerste records uit de Db weg. Als je op de 'Eerste pagina' link klikt en kijkt naar de link, dan zie je ook dat er 'currentpage=0' staat, welke feitelijk pagina '0' oproept. Deze link moet dus eigenlijk ook op de pagina 1 link komen.
Volgens mij doet het probleem zich ook alleen voor bij pagina 1 ...
Raar is ook dat als je de pagina de eerste keer oproept, het wel klopt. Zodra je naar een andere pagina gaat en weer terug naar '1', het probleem zich voordoet.
Toevoeging op 25/10/2010 13:34:57:
en wat me net pas opvalt, is dat de laatste pagina hetzelfde records heeft als de eerste. Dus pagina 0 heeft dezelfde records als de laatste pagina ...
Hieronder de juiste code :
Code (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
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
75
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
75
<?php
// get the current page or set a default
if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) {
// cast var as int
$currentpage = (int) $_GET['currentpage'];
} else {
// default page num
$currentpage = 0;
} // end if
// if current page is greater than total pages...
if ($currentpage > $aantal_paginas) {
// set current page to last page
$currentpage = $aantal_paginas;
} // end if
// if current page is less than first page...
if ($currentpage < 1) {
// set current page to first page
$currentpage = 0;
} // end if
// the offset of the list, based on current page
$offset = ($currentpage - 1) * $aantal_per_pagina;
/****** build the pagination links ******/
// range of num links to show
$range = 3;
echo "<ul id=\"pagination-digg\">";
// if not on page 1, don't show back links
// if ($currentpage > 1) {
// get previous page num
echo " <li class=\"next\"><a href=?currentpage=0&items_per_pagina=".$aantal_per_pagina.">«« </a><li> ";
$prevpage = $currentpage - 1;
// show < link to go back to 1 page
echo " <li class=\"next\"><a href=?currentpage=" . $prevpage ."&items_per_pagina=".$aantal_per_pagina.">« </a><li> ";
// } // end if
// loop to show links to range of pages around current page
for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) {
// if it's a valid page number...
if (($x > 0) && ($x <= $aantal_paginas)) {
// if we're on current page...
if ($x == ($currentpage+1)) {
// 'highlight' it but don't make a link
echo " <li class=\"active\">". ($x) . "</li> ";
// if not current page...
} else {
// make it a link
echo " <li><a href=?currentpage=". ($x-1) . "&items_per_pagina=".$aantal_per_pagina.">$x</a><li> ";
} // end else
} // end if
} // end for
// if not on last page, show forward and last page links
// if ($currentpage != $aantal_paginas) {
// get next page
$nextpage = $currentpage + 1;
// echo forward link for next page
if ( $nextpage <> $aantal_paginas ) {
echo " <li class=\"next\"><a href=?currentpage=". ($nextpage) . "&items_per_pagina=".$aantal_per_pagina."> »</a></li> ";
echo " <li class=\"next\"><a href=?currentpage=". ($aantal_paginas - 1) . "&items_per_pagina=".$aantal_per_pagina."> »»</a></li> ";
} else {
echo " <li class=\"next\"><a href=#> »</a></li> ";
echo " <li class=\"next\"><a href=#> »»</a></li> ";
}
// } // end if
/****** end build pagination links ******/
echo "</ul>";
?>
// get the current page or set a default
if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) {
// cast var as int
$currentpage = (int) $_GET['currentpage'];
} else {
// default page num
$currentpage = 0;
} // end if
// if current page is greater than total pages...
if ($currentpage > $aantal_paginas) {
// set current page to last page
$currentpage = $aantal_paginas;
} // end if
// if current page is less than first page...
if ($currentpage < 1) {
// set current page to first page
$currentpage = 0;
} // end if
// the offset of the list, based on current page
$offset = ($currentpage - 1) * $aantal_per_pagina;
/****** build the pagination links ******/
// range of num links to show
$range = 3;
echo "<ul id=\"pagination-digg\">";
// if not on page 1, don't show back links
// if ($currentpage > 1) {
// get previous page num
echo " <li class=\"next\"><a href=?currentpage=0&items_per_pagina=".$aantal_per_pagina.">«« </a><li> ";
$prevpage = $currentpage - 1;
// show < link to go back to 1 page
echo " <li class=\"next\"><a href=?currentpage=" . $prevpage ."&items_per_pagina=".$aantal_per_pagina.">« </a><li> ";
// } // end if
// loop to show links to range of pages around current page
for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) {
// if it's a valid page number...
if (($x > 0) && ($x <= $aantal_paginas)) {
// if we're on current page...
if ($x == ($currentpage+1)) {
// 'highlight' it but don't make a link
echo " <li class=\"active\">". ($x) . "</li> ";
// if not current page...
} else {
// make it a link
echo " <li><a href=?currentpage=". ($x-1) . "&items_per_pagina=".$aantal_per_pagina.">$x</a><li> ";
} // end else
} // end if
} // end for
// if not on last page, show forward and last page links
// if ($currentpage != $aantal_paginas) {
// get next page
$nextpage = $currentpage + 1;
// echo forward link for next page
if ( $nextpage <> $aantal_paginas ) {
echo " <li class=\"next\"><a href=?currentpage=". ($nextpage) . "&items_per_pagina=".$aantal_per_pagina."> »</a></li> ";
echo " <li class=\"next\"><a href=?currentpage=". ($aantal_paginas - 1) . "&items_per_pagina=".$aantal_per_pagina."> »»</a></li> ";
} else {
echo " <li class=\"next\"><a href=#> »</a></li> ";
echo " <li class=\"next\"><a href=#> »»</a></li> ";
}
// } // end if
/****** end build pagination links ******/
echo "</ul>";
?>