&page=0 IPV =1
Pagination van de PHP Scripts sectie van PHPHulp gebruikt, alleen een probleempje:
als ik in de url &page=1 doe krijg ik eigelijk pagina nummer 2,
in de url moet staan: &page=0 om pagina 1 te krijgen.
Ik heb al verschillende manieren geprobeert, maar niks hielp tot nu toe.
Script:
De navigation onderaan werkt gewoon naar toebehoren.
Iemand een idee hoe ik dit probleem kan fixen?
Ik heb het script als ik in de url &page=1 doe krijg ik eigelijk pagina nummer 2,
in de url moet staan: &page=0 om pagina 1 te krijgen.
Ik heb al verschillende manieren geprobeert, maar niks hielp tot nu toe.
Script:
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# Check get
if(isset($_GET['page']) AND ctype_digit($_GET['page'])) {
# Set page limit begin
$page = $_GET['page'];
}
else{
# Set page limit begin as 1
$page = 1;
}
# Max pages
$eachPage = 1;
# Sql with limit
$sql = 'SELECT * FROM pics WHERE '.$cat.'="1" LIMIT '.($page*$eachPage).','.$eachPage;
# Sql without limit
$sql_count = 'SELECT '.$cat.' FROM pics where '.$cat.'="1"';
# Query uitvoeren
if(!$res = mysql_query($sql)) {
# Fout in query
trigger_error(mysql_error().'<br />In query: '.$sql);
}
elseif(mysql_num_rows($res) == 0) {
# Geen resultaat uit query
echo 'Geen resultaten gevonden';
}
else {
# Iedere record uitvoeren
while($row = mysql_fetch_assoc($res)) {
# Echo de images
echo '
<a class="img" href="/picture/'.(str_replace('-', ' ', $row['name'])).'">
<img alt="'.$row['name'].'" src="'.$row['imgsmall'].'"></img>
'.$row['name'].'
</a>
';
}
echo '
<div class="clear"></div>
</div>
<div class="nav">
<div class="nav-arrow">
';
if($res = mysql_query($sql_count)) {
# Aantal resultaten
$results = mysql_num_rows($res);
}
# Aantal pagina's
$pages = ceil($results / $eachPage);
# Vorige knop maken
if($page > 1) {
echo '
<span><a href="'.$_SERVER['PHP_SELF'].'?cat='.$cat.'&page='.($page-1).'"><<</a></span>
';
}
else{
echo '
<span><a><<</a></span>
';
}
# Volgende knop maken
if(($page+1) <= ($results/$eachPage)) {
echo '
<span><a href="'.$_SERVER['PHP_SELF'].'?cat='.$cat.'&page='.($page+1).'">>></a></span>
';
}
else{
echo '
<span><a>>></a></span>
';
}
}
echo '
</div>
<div class="pages">
';
# Pagina's maken
for($i = 1; $i <= $pages; $i++) {
# Pagina cijfer linkjes aanmaken
echo '<a href="'.$_SERVER['PHP_SELF'].'?cat='.$cat.'&page='.($i).'">'.($i).'</a>';
}
?>
if(isset($_GET['page']) AND ctype_digit($_GET['page'])) {
# Set page limit begin
$page = $_GET['page'];
}
else{
# Set page limit begin as 1
$page = 1;
}
# Max pages
$eachPage = 1;
# Sql with limit
$sql = 'SELECT * FROM pics WHERE '.$cat.'="1" LIMIT '.($page*$eachPage).','.$eachPage;
# Sql without limit
$sql_count = 'SELECT '.$cat.' FROM pics where '.$cat.'="1"';
# Query uitvoeren
if(!$res = mysql_query($sql)) {
# Fout in query
trigger_error(mysql_error().'<br />In query: '.$sql);
}
elseif(mysql_num_rows($res) == 0) {
# Geen resultaat uit query
echo 'Geen resultaten gevonden';
}
else {
# Iedere record uitvoeren
while($row = mysql_fetch_assoc($res)) {
# Echo de images
echo '
<a class="img" href="/picture/'.(str_replace('-', ' ', $row['name'])).'">
<img alt="'.$row['name'].'" src="'.$row['imgsmall'].'"></img>
'.$row['name'].'
</a>
';
}
echo '
<div class="clear"></div>
</div>
<div class="nav">
<div class="nav-arrow">
';
if($res = mysql_query($sql_count)) {
# Aantal resultaten
$results = mysql_num_rows($res);
}
# Aantal pagina's
$pages = ceil($results / $eachPage);
# Vorige knop maken
if($page > 1) {
echo '
<span><a href="'.$_SERVER['PHP_SELF'].'?cat='.$cat.'&page='.($page-1).'"><<</a></span>
';
}
else{
echo '
<span><a><<</a></span>
';
}
# Volgende knop maken
if(($page+1) <= ($results/$eachPage)) {
echo '
<span><a href="'.$_SERVER['PHP_SELF'].'?cat='.$cat.'&page='.($page+1).'">>></a></span>
';
}
else{
echo '
<span><a>>></a></span>
';
}
}
echo '
</div>
<div class="pages">
';
# Pagina's maken
for($i = 1; $i <= $pages; $i++) {
# Pagina cijfer linkjes aanmaken
echo '<a href="'.$_SERVER['PHP_SELF'].'?cat='.$cat.'&page='.($i).'">'.($i).'</a>';
}
?>
De navigation onderaan werkt gewoon naar toebehoren.
Iemand een idee hoe ik dit probleem kan fixen?
Gewijzigd op 18/06/2012 17:43:49 door Ibrahim A
Waarom een hoop rijen selecteren om het aantal records te bepalen? Dit kost alleen maar geheugen.
Het aantal records bepaal je door:
SELECT COUNT(*) FROM tabel [WHERE voorwaarde]
Ozzie PHP op 18/06/2012 18:09:42:
Ah, dank je wel!
Moest erna wel wat andere dingen veranderen want bij de vorige/volgende knop en de nummering klopte het weer niet.. maar zo is hij goed! (:
@Ger van Steenderen
Nogmaals, ik heb het script van PHPHulp af gehaald, ik ben zelf een beginner in PHP, ik zou niet weten wat die COUNT(*) doet en door welke regel ik deze moet vervangen..