ik heb een forum gemaakt (een deel) en nu wil ik instellen dat je 20 posts per pagina ziet.... ik heb de volgende code:


<?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>&nbsp;'.$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
Het is niet LIMIT $begin, $eind maar LIMIT $begin, $aantal
kijk deze doet het =D

bedankt ;)

Reageren