ik ben bezig met een pagina systeem waarbij er 10 resultaten per pagina weergegeven worden, enkel werkt dit nog niet helemaal lekker, op de eerste pagina werkt het prima, en op de laatste pagina ook.

maar op de 2e pagina geeft hij er 20, en op de 3e pagina 30 enz.
ik snap het niet meer.

<?php
include('config.php');

	$getgenre	= $_GET['genre'];
	$pagina		= $_GET['pagina'];
		
	if ($pagina == '')
	{
	$pagina = 1;
	}
	
	$limiet1	= ($pagina-1)*10;
	$limiet2	= $pagina * 10;
	
	if ($getgenre == 'sciencefiction')
	{
	$getgenre = 'science fiction';
	}
	
	if ($getgenre == '')
	{
	echo('Kies een genre hiernaast om de films weer te geven');
	}
	elseif ($getgenre == 'new')
	{
	$query14		= "SELECT * FROM films WHERE soort = '".$getgenre."' ORDER BY naam ASC LIMIT ".$limiet1.",".$limiet2."";
	$result14		= mysql_query($query14) or die (mysql_error());
	}
	elseif ($getgenre == 'deal')
	{
	$query14		= "SELECT * FROM films WHERE soort = '".$getgenre."' ORDER BY naam ASC LIMIT ".$limiet1.",".$limiet2."";
	$result14		= mysql_query($query14) or die (mysql_error());
	}
	else
	{
	$query14		= "SELECT * FROM films WHERE genre = '".$getgenre."' ORDER BY naam ASC LIMIT ".$limiet1.",".$limiet2."";
	$result14		= mysql_query($query14) or die (mysql_error());
	}

if (mysql_num_rows($result14) > 0)
{

?>
<table>
<?php

	while($row14 = mysql_fetch_array($result14))
	{
		if (!file_exists('afbeeldingen/'.$row14['id'].'.jpg'))
		{
			echo('<tr><td><img src="afbeeldingen/nietbeschikbaar.jpg" width="75" height="100"></td>');
		}
		else
		{
			echo('<tr><td><img src="afbeeldingen/'.$row14['id'].'.jpg" width="75" height="100"></td>');
		}
		
	echo('<td>'.$row1['naam'].'</td></tr>');
	
	}
	echo('</table>');
?>


en het stukje code voor de paginanummering
<?php
for ($i=1; $i<=$aantalpaginas; $i++)
{
if ($i == $pagina)
{
echo('<b><a href="?page=catalogus&genre='.$getgenre.'&pagina='.$i.'" class="normal">'.$i.'</a></b> ');
}
else
{
echo('<a href="?page=catalogus&genre='.$getgenre.'&pagina='.$i.'" class="normal">'.$i.'</a> ');
}
}
?>

$aantalpaginas wordt in code hiervoor gedefinieerd, maar dat heb ik er tussenuit gehaald omdat er nog heel veel meer tussen staat.
LIMIT start, aantal

$limiet1 = ($pagina-1)*10;
$limiet2 = $pagina * 10;

stel pagina = 2:
(2-1) * 10 = 10
2 * 10 = 20

LIMIT 10, 20 geeft-> start bij 10 en haal daarna de volgende 20 rows op.

Gewoon even hard coded 10 inzetten :)
oh werkt het zo, ik dacht dat het getal achter de komma het einde was, dus in jouw voorbeeld bij pagina 2 zou dat 20 zijn, maar dan haalt hij dus de volgende 20 op.

nou snap ik ook waarom de laatste pagina wel goed was, want dan waren er geen verdere records meer natuurlijk.

hartelijk dank, ik kan weer verder!

Reageren