paginanummering
Ik heb vandaag heel veel lopen stoeien en uitgeprobeert om te zorgen dat mijn plaatjes niet in een lange rij komt te staan.
Ik wil heb graag per 2 per pagina.... Dus op de eertste pagina de eerste 2 plaatjes en dan de volgende 2 plaatjes op pagina 2 ( deze moet automatisch aangemaakt worden ) enz enz.
Nu krijg ik wel in de urlbalk "index.php?p=1 ,index.php?p=2" enz ... alleen blijven wel alle plaatjes tegelijk zichtbaar op alle pagina's
Voor een duidelijke illustratie post ik de code:
index.php
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
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
<?php
require("navigatie.class.php");
$ng = new Navigatie("portfolio", 1);
$sql = "SELECT * FROM portfolio ORDER BY id DESC LIMIT ".$ng->offset().",".$ng->items_per_pagina()."";
$res = mysql_query($sql) or die (mysql_error());
while ($show = mysql_fetch_object($res))
{
}
mysql_free_result($res);
echo $ng->links();
$query = "SELECT * FROM portfolio ORDER BY id DESC LIMIT 0,5";
$result = mysql_query($query) or die(mysql_error());
$count = mysql_num_rows($result);
if ($count==0)
{
echo '<span style="color: #FF0000;">Er staan geen projecten in de database</span>';
}
else
{
while($row = mysql_fetch_assoc($result))
{
echo '<span style="color: #c7bfb0;"><h3><strong>Projectnaam:</strong> '. $row['projectnaam'] .'</h3></span>
<a href="'. $row['grote_afbeelding'] .'"><img src="'. $row['kleine_afbeelding'] .'" border="1" /></a><br /><br />
<strong><span style="color: #7a7365;">Gebruikte Technieken:</strong> '. $row['technieken'] .'<br /><br /><strong>Beschrijving:</strong><br /> '. $row['beschrijving'] .'</span><br /><hr><br />';
}
}
?>
require("navigatie.class.php");
$ng = new Navigatie("portfolio", 1);
$sql = "SELECT * FROM portfolio ORDER BY id DESC LIMIT ".$ng->offset().",".$ng->items_per_pagina()."";
$res = mysql_query($sql) or die (mysql_error());
while ($show = mysql_fetch_object($res))
{
}
mysql_free_result($res);
echo $ng->links();
$query = "SELECT * FROM portfolio ORDER BY id DESC LIMIT 0,5";
$result = mysql_query($query) or die(mysql_error());
$count = mysql_num_rows($result);
if ($count==0)
{
echo '<span style="color: #FF0000;">Er staan geen projecten in de database</span>';
}
else
{
while($row = mysql_fetch_assoc($result))
{
echo '<span style="color: #c7bfb0;"><h3><strong>Projectnaam:</strong> '. $row['projectnaam'] .'</h3></span>
<a href="'. $row['grote_afbeelding'] .'"><img src="'. $row['kleine_afbeelding'] .'" border="1" /></a><br /><br />
<strong><span style="color: #7a7365;">Gebruikte Technieken:</strong> '. $row['technieken'] .'<br /><br /><strong>Beschrijving:</strong><br /> '. $row['beschrijving'] .'</span><br /><hr><br />';
}
}
?>
navigatie.class.php
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
<?php
/**
* @class: Deze klasse maakt een pagina systeem voor als je inhoud uit
* de database laat zien. Zo heb je niet alles onder elkaar
* staan, maar houdt je alles overzichtelijk met meerdere
* pagina's
* @author: Gizmo (Dave Lemmens)
* @version: v1.0
* @copyright: (c)2007 Gizmo
*/
class Navigatie
{
//////////////////////////////////////////////////
// De tabel waaruit de waardes straks worden getoond
//////////////////////////////////////////////////
private $tabel;
//////////////////////////////////////////////////
// Het aantal items per pagina
//////////////////////////////////////////////////
private $items_per_pagina;
//////////////////////////////////////////////////
// Het aantal pagina's
//////////////////////////////////////////////////
private $aantal_paginas;
//////////////////////////////////////////////////
// De huidge pagina waarop de bezoeker is
//////////////////////////////////////////////////
private $huidig;
//////////////////////////////////////////////////
// De offset voor de uiteindelijke query
//////////////////////////////////////////////////
private $offset;
/**
* @function: Constructor: zet de variabelen goed
* @param: $tabel: de tabel waaruit de waardes straks worden weergegeven
* $items_per_pagina: het aantal items dat op een pagina getoond moet worden
*/
public function Navigatie($tabel, $items_per_pagina)
{
$this->tabel = $tabel;
$this->items_per_pagina = $items_per_pagina;
$this->aantal_paginas = $this->count_paginas();
$this->huidig = $this->get_huidig();
$this->offset = $this->get_offset();
}
/**
* @function: geeft de offset terug
* @return: de offset
*/
public function offset()
{
return $this->offset;
}
/**
* @function: geeft het aantal items per pagina terug
* @return: het aantal items per pagina
*/
public function items_per_pagina()
{
return $this->items_per_pagina;
}
/**
* @function: zet de nodige variabelen goed
* @param: $tabel: de tabel waaruit de waardes straks worden weergegeven
* $items_per_pagina: het aantal items dat op een pagina getoond moet worden
* @return: void
*/
public function set($tabel, $items_per_pagina)
{
//////////////////////////////////////////////////
// Variabelen goed zetten
//////////////////////////////////////////////////
$this->tabel = $tabel;
$this->items_per_pagina = $items_per_pagina;
//////////////////////////////////////////////////
// Aantal pagina's en de offset berekenen en de
// huidige pagina opzoeken
//////////////////////////////////////////////////
$this->aantal_paginas = $this->count_paginas();
$this->huidig = $this->get_huidig();
$this->offset = $this->get_offset();
}
/**
* @function: berekent het totaal aantal paginas
* @return: het totale aantal paginas
*/
private function count_paginas()
{
$sql = "SELECT COUNT(id) FROM ".$this->tabel."";
$res = mysql_query($sql) or die (mysql_error());
$aantal_items = mysql_result($res, 0);
mysql_free_result($res);
$paginas = ceil($aantal_items / $this->items_per_pagina);
return $paginas;
}
/**
* @function: kijkt op welke pagina de bezoeker nu is.
* @return: de pagina waarop de bezoeker nu is
*/
private function get_huidig()
{
//////////////////////////////////////////////////
// We beginnen op 0, voor als de bezoeker nog
// niet op een volgende pagina is, of voor als
// de $_GET geen geldige waarde bevat
//////////////////////////////////////////////////
$huidige_pagina = 0;
//////////////////////////////////////////////////
// Kijken op welke pagina de bezoeker is en
// meteen controleren of het een geldige waarde is
//////////////////////////////////////////////////
if(isset($_GET['p']) && is_numeric($_GET['p']) && $_GET['p'] > 0 && $_GET['p'] < $this->aantal_paginas)
{
$huidige_pagina = $_GET['p'];
}
return $huidige_pagina;
}
/**
* @function: berekend de offset voor de uiteindelijke query
* @return: de offset voor de uiteindelijke query
*/
private function get_offset()
{
$offset = $this->huidig * $this->items_per_pagina;
return $offset;
}
/**
* @function: Deze functie maakt de navigatie links
* @return: de navigatie links
*/
public function links()
{
//////////////////////////////////////////////////
// Eerst bepalen we de url. Hiervoor maken we
// gebruik van de functie querystring()
//////////////////////////////////////////////////
$q = $_SERVER['PHP_SELF'].$this->querystring("p");
//////////////////////////////////////////////////
// Nu maken we de vorige knop
//////////////////////////////////////////////////
if ($this->huidig > 0)
{
$out .= " <a href='".$q."p=".($this->huidig - 1)."'>Vorige</a> ";
}
//////////////////////////////////////////////////
// We maken de navigatie met behulp van een
// select. Als er op een paginanummer geklikt
// wordt, wordt je meteen naar de pagina gestuurd
//////////////////////////////////////////////////
if ($this->aantal_paginas > 1)
{
$out .= "<select name='navigatie'>\n";
for ($i = 0; $i < $this->aantal_paginas; $i++)
{
$out .= "<option value='".$i."' onClick='JavaScript:window.location=\"".$q."p=".$i."\"' ";
//////////////////////////////////////////////////
// De huidige pagina moet geselecteerd zijn
//////////////////////////////////////////////////
if ($this->huidig == $i)
{
$out .= "selected='selected'";
}
$out .= ">".($i+1)."</option>";
}
$out .= "</select>\n";
}
//////////////////////////////////////////////////
// Nu maken we de volgende knop
//////////////////////////////////////////////////
if ($this->huidig < ($this->aantal_paginas - 1))
{
$out .= " <a href='".$q."p=".($this->huidig + 1)."'>Volgende</a>";
}
return $out;
}
/**
* @function: maakt de url door te kijken welke $_GET waardes er
* al in staan, zodat deze niet verloren gaan
* @param: $nav_var: de variabele die het paginanummer aangeeft
* @return: de juiste querystring
*/
private function querystring($nav_var)
{
//////////////////////////////////////////////////
// We beginnen met een ? in de string
//////////////////////////////////////////////////
$qstring = "?";
//////////////////////////////////////////////////
// Nu kijken we of er meerdere queryvariabelen
//zijn
//////////////////////////////////////////////////
if(sizeof($_GET) > 1 || !in_array($nav_var, array_keys($_GET)))
{
//////////////////////////////////////////////////
// De string aanvullen met de variabelen die in
// de url staan
//////////////////////////////////////////////////
foreach($_GET as $k => $v)
{
if($k != $nav_var)
{
$qstring .= $k."=".$v."&";
}
}
}
return $qstring;
}
}
?>
/**
* @class: Deze klasse maakt een pagina systeem voor als je inhoud uit
* de database laat zien. Zo heb je niet alles onder elkaar
* staan, maar houdt je alles overzichtelijk met meerdere
* pagina's
* @author: Gizmo (Dave Lemmens)
* @version: v1.0
* @copyright: (c)2007 Gizmo
*/
class Navigatie
{
//////////////////////////////////////////////////
// De tabel waaruit de waardes straks worden getoond
//////////////////////////////////////////////////
private $tabel;
//////////////////////////////////////////////////
// Het aantal items per pagina
//////////////////////////////////////////////////
private $items_per_pagina;
//////////////////////////////////////////////////
// Het aantal pagina's
//////////////////////////////////////////////////
private $aantal_paginas;
//////////////////////////////////////////////////
// De huidge pagina waarop de bezoeker is
//////////////////////////////////////////////////
private $huidig;
//////////////////////////////////////////////////
// De offset voor de uiteindelijke query
//////////////////////////////////////////////////
private $offset;
/**
* @function: Constructor: zet de variabelen goed
* @param: $tabel: de tabel waaruit de waardes straks worden weergegeven
* $items_per_pagina: het aantal items dat op een pagina getoond moet worden
*/
public function Navigatie($tabel, $items_per_pagina)
{
$this->tabel = $tabel;
$this->items_per_pagina = $items_per_pagina;
$this->aantal_paginas = $this->count_paginas();
$this->huidig = $this->get_huidig();
$this->offset = $this->get_offset();
}
/**
* @function: geeft de offset terug
* @return: de offset
*/
public function offset()
{
return $this->offset;
}
/**
* @function: geeft het aantal items per pagina terug
* @return: het aantal items per pagina
*/
public function items_per_pagina()
{
return $this->items_per_pagina;
}
/**
* @function: zet de nodige variabelen goed
* @param: $tabel: de tabel waaruit de waardes straks worden weergegeven
* $items_per_pagina: het aantal items dat op een pagina getoond moet worden
* @return: void
*/
public function set($tabel, $items_per_pagina)
{
//////////////////////////////////////////////////
// Variabelen goed zetten
//////////////////////////////////////////////////
$this->tabel = $tabel;
$this->items_per_pagina = $items_per_pagina;
//////////////////////////////////////////////////
// Aantal pagina's en de offset berekenen en de
// huidige pagina opzoeken
//////////////////////////////////////////////////
$this->aantal_paginas = $this->count_paginas();
$this->huidig = $this->get_huidig();
$this->offset = $this->get_offset();
}
/**
* @function: berekent het totaal aantal paginas
* @return: het totale aantal paginas
*/
private function count_paginas()
{
$sql = "SELECT COUNT(id) FROM ".$this->tabel."";
$res = mysql_query($sql) or die (mysql_error());
$aantal_items = mysql_result($res, 0);
mysql_free_result($res);
$paginas = ceil($aantal_items / $this->items_per_pagina);
return $paginas;
}
/**
* @function: kijkt op welke pagina de bezoeker nu is.
* @return: de pagina waarop de bezoeker nu is
*/
private function get_huidig()
{
//////////////////////////////////////////////////
// We beginnen op 0, voor als de bezoeker nog
// niet op een volgende pagina is, of voor als
// de $_GET geen geldige waarde bevat
//////////////////////////////////////////////////
$huidige_pagina = 0;
//////////////////////////////////////////////////
// Kijken op welke pagina de bezoeker is en
// meteen controleren of het een geldige waarde is
//////////////////////////////////////////////////
if(isset($_GET['p']) && is_numeric($_GET['p']) && $_GET['p'] > 0 && $_GET['p'] < $this->aantal_paginas)
{
$huidige_pagina = $_GET['p'];
}
return $huidige_pagina;
}
/**
* @function: berekend de offset voor de uiteindelijke query
* @return: de offset voor de uiteindelijke query
*/
private function get_offset()
{
$offset = $this->huidig * $this->items_per_pagina;
return $offset;
}
/**
* @function: Deze functie maakt de navigatie links
* @return: de navigatie links
*/
public function links()
{
//////////////////////////////////////////////////
// Eerst bepalen we de url. Hiervoor maken we
// gebruik van de functie querystring()
//////////////////////////////////////////////////
$q = $_SERVER['PHP_SELF'].$this->querystring("p");
//////////////////////////////////////////////////
// Nu maken we de vorige knop
//////////////////////////////////////////////////
if ($this->huidig > 0)
{
$out .= " <a href='".$q."p=".($this->huidig - 1)."'>Vorige</a> ";
}
//////////////////////////////////////////////////
// We maken de navigatie met behulp van een
// select. Als er op een paginanummer geklikt
// wordt, wordt je meteen naar de pagina gestuurd
//////////////////////////////////////////////////
if ($this->aantal_paginas > 1)
{
$out .= "<select name='navigatie'>\n";
for ($i = 0; $i < $this->aantal_paginas; $i++)
{
$out .= "<option value='".$i."' onClick='JavaScript:window.location=\"".$q."p=".$i."\"' ";
//////////////////////////////////////////////////
// De huidige pagina moet geselecteerd zijn
//////////////////////////////////////////////////
if ($this->huidig == $i)
{
$out .= "selected='selected'";
}
$out .= ">".($i+1)."</option>";
}
$out .= "</select>\n";
}
//////////////////////////////////////////////////
// Nu maken we de volgende knop
//////////////////////////////////////////////////
if ($this->huidig < ($this->aantal_paginas - 1))
{
$out .= " <a href='".$q."p=".($this->huidig + 1)."'>Volgende</a>";
}
return $out;
}
/**
* @function: maakt de url door te kijken welke $_GET waardes er
* al in staan, zodat deze niet verloren gaan
* @param: $nav_var: de variabele die het paginanummer aangeeft
* @return: de juiste querystring
*/
private function querystring($nav_var)
{
//////////////////////////////////////////////////
// We beginnen met een ? in de string
//////////////////////////////////////////////////
$qstring = "?";
//////////////////////////////////////////////////
// Nu kijken we of er meerdere queryvariabelen
//zijn
//////////////////////////////////////////////////
if(sizeof($_GET) > 1 || !in_array($nav_var, array_keys($_GET)))
{
//////////////////////////////////////////////////
// De string aanvullen met de variabelen die in
// de url staan
//////////////////////////////////////////////////
foreach($_GET as $k => $v)
{
if($k != $nav_var)
{
$qstring .= $k."=".$v."&";
}
}
}
return $qstring;
}
}
?>
ik hoop dat iemand een oplossing weet!
Alvast vriendelijk bedankt!
Jos
{
$huidige_pagina = $_GET['p'];
}
weet je zeker dat dat werkt?
Misschien moet je bovenin je classe dit nog toevoegen:
Het lijkt er nl. op dat de $_GET['p'] niet wordt opgevangen.
hoe bedoel je dat ? .. ik ben heel nieuw met php taal
Code (php)
Maak van dat stukje:
Code (php)
En probeer het dan nog eens uit.