10 berichten per pagina
sficlan.com/test/news.php?p=2
dit is dan als er bijvoorbeeld 12 berichten zijn dat er dan 10 pagina 1 komen te staan en 2 op pagina 2
of als er 64 berichten zijn dat je dan 7 paginas hebt
hoe doe ik dit ?
mijn 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
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
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
<?php
// Database connectie maken met database
include('includes/conn.php');
include('includes/ubb.php');
// Alles uit db halen laatste bericht als eerste.
$sql = mysql_query("SELECT
*,
id
FROM
news
ORDER BY
datum
DESC
");
// Als de query is gelukt
if($sql)
{
// Als er items zijn
if(mysql_num_rows($sql) > 0)
{
// Items neerzetten
while($rec = mysql_fetch_assoc($sql))
{
// Alles echoën
echo '<b>Naam:</b> '.$rec['user'];
Echo "<br>";
echo '<b>Gepost op:</b> '.$rec['datum'];
Echo "<br>";
Echo "<br>";
echo nl2br('<b>Bericht: </b>'.ubb_gastenboek($rec['news']));
// Lijntje
echo '<br><hr><br>';
}
}
// Anders
else
{
// Geen berichten
echo 'Er zijn nog geen nieuws berichten!.';
}
}
// Anders
else
{
// MySql error
echo 'Er is een fout opgetreden in de query: <br />';
echo mysql_error();
}
# Als er is gesubmit
if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
# Velden leeg check
if($_POST['user'] == "" )
{
$errors[] = 'Je bent je naam vergeten!';
}
if($_POST['news'] == "" )
{
$errors[] = 'laat het veld news niet leeg !';
}
if($_POST['news'] == "Typ hier je nieuws!" )
{
$errors[] = 'laat het veld news niet leeg !';
}
if( !isset( $errors ) )
{
$qry = "INSERT INTO
news
(
user,
news,
ip,
datum
)
VALUES
(
'".mysql_real_escape_string( $_POST['user'] )."',
'".mysql_real_escape_string( $_POST['news'] )."',
'".$_SERVER['REMOTE_ADDR']."',
NOW()
)";
if( mysql_query( $qry ) )
{
Echo "Het nieuw is succesvol verwerkt, bedankt voor je inzending!";
echo '
<form action="" method="post">
<label>Naam:</label>
<input type="text" size="12" maxlength="12" name="user">
<br />
<label>News:</label>
<textarea name="news" rows="4" cols="50">Typ hier je nieuws!</textarea>
<br />
<input type="submit" value="Post" name="Post">
</form>';
}
else
{
echo 'Foutjeee :( ' . mysql_error( );
}
}
else
{
foreach( $errors as $error )
{
echo $error.'<br />';
}
}
}
else
{
# Het formulier
echo '
<form action="" method="post">
<label>Naam:</label>
<input type="text" size="12" maxlength="12" name="user">
<br />
<label>News:</label>
<textarea name="news" rows="4" cols="50">Typ hier je nieuws!</textarea>
<br />
<input type="submit" value="Post" name="Post">
</form>';
}
?>
// Database connectie maken met database
include('includes/conn.php');
include('includes/ubb.php');
// Alles uit db halen laatste bericht als eerste.
$sql = mysql_query("SELECT
*,
id
FROM
news
ORDER BY
datum
DESC
");
// Als de query is gelukt
if($sql)
{
// Als er items zijn
if(mysql_num_rows($sql) > 0)
{
// Items neerzetten
while($rec = mysql_fetch_assoc($sql))
{
// Alles echoën
echo '<b>Naam:</b> '.$rec['user'];
Echo "<br>";
echo '<b>Gepost op:</b> '.$rec['datum'];
Echo "<br>";
Echo "<br>";
echo nl2br('<b>Bericht: </b>'.ubb_gastenboek($rec['news']));
// Lijntje
echo '<br><hr><br>';
}
}
// Anders
else
{
// Geen berichten
echo 'Er zijn nog geen nieuws berichten!.';
}
}
// Anders
else
{
// MySql error
echo 'Er is een fout opgetreden in de query: <br />';
echo mysql_error();
}
# Als er is gesubmit
if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
# Velden leeg check
if($_POST['user'] == "" )
{
$errors[] = 'Je bent je naam vergeten!';
}
if($_POST['news'] == "" )
{
$errors[] = 'laat het veld news niet leeg !';
}
if($_POST['news'] == "Typ hier je nieuws!" )
{
$errors[] = 'laat het veld news niet leeg !';
}
if( !isset( $errors ) )
{
$qry = "INSERT INTO
news
(
user,
news,
ip,
datum
)
VALUES
(
'".mysql_real_escape_string( $_POST['user'] )."',
'".mysql_real_escape_string( $_POST['news'] )."',
'".$_SERVER['REMOTE_ADDR']."',
NOW()
)";
if( mysql_query( $qry ) )
{
Echo "Het nieuw is succesvol verwerkt, bedankt voor je inzending!";
echo '
<form action="" method="post">
<label>Naam:</label>
<input type="text" size="12" maxlength="12" name="user">
<br />
<label>News:</label>
<textarea name="news" rows="4" cols="50">Typ hier je nieuws!</textarea>
<br />
<input type="submit" value="Post" name="Post">
</form>';
}
else
{
echo 'Foutjeee :( ' . mysql_error( );
}
}
else
{
foreach( $errors as $error )
{
echo $error.'<br />';
}
}
}
else
{
# Het formulier
echo '
<form action="" method="post">
<label>Naam:</label>
<input type="text" size="12" maxlength="12" name="user">
<br />
<label>News:</label>
<textarea name="news" rows="4" cols="50">Typ hier je nieuws!</textarea>
<br />
<input type="submit" value="Post" name="Post">
</form>';
}
?>
google eens op pagination zo noemen ze dat. Er staan ook verschillende hier op phphulp als ik me niet vergis.
mischien een voorbeeldje?
Het gaat met name om het LIMIT gedeelte. LIMIT 0, 10 zal de eerste 10 resultaten weergeven. LIMIT 10, 10 zal de volgende 10 resultaten weergeven. 11 t/m 12 in jouw geval omdat je maar 12 resultaten in totaal hebt.
maar dan heb ik geen ?p=2
Je weet dus wel hoe je de huidige pagina omzet in het LIMIT gedeelte?
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
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
<?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.
/*---- INFO: Check if " $page_count " isn't the same as " $menu_length " to prevent page 0 to be displayed. ----*/
if($page_count == $menu_length){
#| Return page 1 / last.
return range(1, $page_count);
}
else{
#| Last couple of pages.
return 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
/*--------------------------------------------------------------------------------------------------------------------------
(§) Pagination | Previous page
--------------------------------------------------------------------------------------------------------------------------*/
#| ...
if($current_page > 1){
echo '<a href="?page='.($current_page - 1).'">Previous</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).'">Next</a>';
}
?>
</body>
</html>
/*--------------------------------------------------------------------------------------------------------------------------
(§) 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.
/*---- INFO: Check if " $page_count " isn't the same as " $menu_length " to prevent page 0 to be displayed. ----*/
if($page_count == $menu_length){
#| Return page 1 / last.
return range(1, $page_count);
}
else{
#| Last couple of pages.
return 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
/*--------------------------------------------------------------------------------------------------------------------------
(§) Pagination | Previous page
--------------------------------------------------------------------------------------------------------------------------*/
#| ...
if($current_page > 1){
echo '<a href="?page='.($current_page - 1).'">Previous</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).'">Next</a>';
}
?>
</body>
</html>
Hier heb ik denk ik wel iets aan
Als je je pagina als key een ?p=2 mee wil geven, dan haal je met een $_GET toch gewoon P op en doe je het paginanummer keer 10? Pagina twee is 11 t/m 20.. Dus dan heb je de max, en dan haal je van die 20, 9 af (omdat 20 zelf ook een resultaat is) en dan krijg je 11. Dus dan voeg je dat in je limit toe qua SQL query, dan heb je LIMIT 11,20... Wellicht een ideetje!