Forum Pagina-s probleem
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
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
<?php
error_reporting(E_ALL); // foutafhandeling
include('dbc.php'); // database verbinding includen
if($ingelogd) // als er is ingelogd
{
if(isset($_GET['id'])) // als het cat_id niet leeg is
{
if(isset($_GET['pagina']))
{
$pagina = $_GET['pagina'];
$begin = ($pagina * 3) - 3;
$eind = $begin + 3;
}
else
{
$pagina = 1;
$begin = ($pagina * 3) - 3;
$eind = $begin + 3;
}
$topic_id = $_GET['id'];
// posts selecteren uit database
// aantal posts uit de db halen
$aantal_posts_1 = mysql_fetch_assoc(mysql_query("SELECT COUNT(*) AS aantal FROM forum_posts WHERE post_topic_id = '".$topic_id."'"));
$aantal_posts = $aantal_posts_1['aantal'];
$select_posts_query ="
SELECT
t.topic_starter_id,
t.topic_titel,
p.post_topic_id,
p.post_poster_id,
p.post_bericht,
g.gebruiker_id,
g.gebruiker_naam,
p.post_tijd,
g.gebruiker_avatar
FROM
forum_posts AS p,
gebruikers AS g,
forum_topics AS t
WHERE
t.topic_cat_id = '".$topic_id."'
AND
g.gebruiker_id = p.post_poster_id
LIMIT $begin,$eind
";
$select_posts_sql = mysql_query($select_posts_query); // query uitvoeren
if(!$select_posts_sql) // als de query mislukt is
{
trigger_error("Er is een fout opgetreden namelijk:<br>". mysql_error()); // error weergeven
}
$aantal_paginas = $aantal_posts/3 + 1;
for ($i = 1; $i <= $aantal_paginas; $i++)
{
echo '<a href="topic.php?id='.$_GET['id'].'&pagina='.$i.'">'.$i.'</a><br>';
}
// posts echoen
echo $begin.' '.$eind;
echo '<table border="0" width="90%" cellspacing="1">';
while($select_posts_result = mysql_fetch_assoc($select_posts_sql)) // voor elk topic een tabelletje
{
// smileys vervangen
$bericht = $select_posts_result['post_bericht'];
$smiley = array(
'(6)' => '<img src=images/6.png>',
'(A)' => '<img src=images/a.gif>',
'(a)' => '<img src=images/a.gif>',
':p' => '<img src=images/p.gif>',
':P' => '<img src=images/p.gif>',
'(L)' => '<img src=images/L.gif>',
'(l)' => '<img src=images/L.gif>',
'^^' => '<img src=images/dakje.png>'
);
// einde smileys
foreach($smiley as $key => $waarde) // voor elke key in de array smileys
{
$bericht = str_replace($key,$waarde,$bericht); // vervang de key in de waarde
}
echo '
<tr height="15"><td rowspan="2" width="120" valign="bottom"><img src="'.$select_posts_result['gebruiker_avatar'].'" width="100"></td><td bgcolor="blue"><font color="white"><b> '.$select_posts_result['gebruiker_naam'].'</td></tr>
<tr height="100"><td valign="top">'.$bericht.'</td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
';
}
echo'</table>';
// einde posts echoen
}
}
?>
error_reporting(E_ALL); // foutafhandeling
include('dbc.php'); // database verbinding includen
if($ingelogd) // als er is ingelogd
{
if(isset($_GET['id'])) // als het cat_id niet leeg is
{
if(isset($_GET['pagina']))
{
$pagina = $_GET['pagina'];
$begin = ($pagina * 3) - 3;
$eind = $begin + 3;
}
else
{
$pagina = 1;
$begin = ($pagina * 3) - 3;
$eind = $begin + 3;
}
$topic_id = $_GET['id'];
// posts selecteren uit database
// aantal posts uit de db halen
$aantal_posts_1 = mysql_fetch_assoc(mysql_query("SELECT COUNT(*) AS aantal FROM forum_posts WHERE post_topic_id = '".$topic_id."'"));
$aantal_posts = $aantal_posts_1['aantal'];
$select_posts_query ="
SELECT
t.topic_starter_id,
t.topic_titel,
p.post_topic_id,
p.post_poster_id,
p.post_bericht,
g.gebruiker_id,
g.gebruiker_naam,
p.post_tijd,
g.gebruiker_avatar
FROM
forum_posts AS p,
gebruikers AS g,
forum_topics AS t
WHERE
t.topic_cat_id = '".$topic_id."'
AND
g.gebruiker_id = p.post_poster_id
LIMIT $begin,$eind
";
$select_posts_sql = mysql_query($select_posts_query); // query uitvoeren
if(!$select_posts_sql) // als de query mislukt is
{
trigger_error("Er is een fout opgetreden namelijk:<br>". mysql_error()); // error weergeven
}
$aantal_paginas = $aantal_posts/3 + 1;
for ($i = 1; $i <= $aantal_paginas; $i++)
{
echo '<a href="topic.php?id='.$_GET['id'].'&pagina='.$i.'">'.$i.'</a><br>';
}
// posts echoen
echo $begin.' '.$eind;
echo '<table border="0" width="90%" cellspacing="1">';
while($select_posts_result = mysql_fetch_assoc($select_posts_sql)) // voor elk topic een tabelletje
{
// smileys vervangen
$bericht = $select_posts_result['post_bericht'];
$smiley = array(
'(6)' => '<img src=images/6.png>',
'(A)' => '<img src=images/a.gif>',
'(a)' => '<img src=images/a.gif>',
':p' => '<img src=images/p.gif>',
':P' => '<img src=images/p.gif>',
'(L)' => '<img src=images/L.gif>',
'(l)' => '<img src=images/L.gif>',
'^^' => '<img src=images/dakje.png>'
);
// einde smileys
foreach($smiley as $key => $waarde) // voor elke key in de array smileys
{
$bericht = str_replace($key,$waarde,$bericht); // vervang de key in de waarde
}
echo '
<tr height="15"><td rowspan="2" width="120" valign="bottom"><img src="'.$select_posts_result['gebruiker_avatar'].'" width="100"></td><td bgcolor="blue"><font color="white"><b> '.$select_posts_result['gebruiker_naam'].'</td></tr>
<tr height="100"><td valign="top">'.$bericht.'</td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
<tr><td></td></tr>
';
}
echo'</table>';
// einde posts echoen
}
}
?>
in de volgende pagina
http://localhost/vmo/forum/topic.php?id=1
zie ik resultaat 1, 2 en 3 (limiet 0,3)
op pagina 2 zie ik limiet (3,6) maar ik zie de posts 4, 5, 6, 7, 8 en 9
kortom ergens gaat het niet helemaal goed
wat moet ik veranderen?
edit: ik heb geen voorbeeld aangezien mijn server nog niet goed staat, maar ik hoop dat iemand zo ook wat ziet
Gewijzigd op 01/01/1970 01:00:00 door Thomas minke
Het is niet LIMIT $begin, $eind maar LIMIT $begin, $aantal
bedankt ;)