Het lukt nog niet helemaal.

Dit is mijn query gedeelte:

<?php
$items_totaal = $num_rows;
$items_per_pagina = 10;
$aantal_paginas = ceil($items_totaal / $items_per_pagina);

$huidige_pagina = 0;
if(isset($_GET['p']) && is_numeric($_GET['p']) && $_GET['p'] > 0 && $_GET['p'] < $aantal_paginas) {
$huidige_pagina = $_GET['p'];
}

$offset = $huidige_pagina * $items_per_pagina;

$condition3 = ' AND status = 0 ORDER BY datum DESC LIMIT '.$offset.', '.$items_per_pagina.'';

?>

En dit het navigatie gedeelte:

<?php
if ($huidige_pagina > 0) {
$vorige_pagina = $huidige_pagina - 1;
echo "<a href=\"".$_SERVER['REQUEST_URI']."&p=" . $vorige_pagina . "\"><b><i>[Vorige]</i></b></a>&nbsp";
}
?>

<?php
// navigatie
echo 'Pagina: ';
for($i = 1; $i <= $aantal_paginas; $i++) {
if($huidige_pagina == $i) {
// huidige pagina is niet klikbaar
echo "<b>".$i."</b>";
} else {
// een andere pagina dan de huidige is wel klikbaar
echo "<a href=\"".$_SERVER['REQUEST_URI']."&p=".$i."\">".$i."</a>";
}
// deel-streepje tussen alle items
if($i < $aantal_paginas ) {
echo " - ";
}
}
?>


<?php
if ($huidige_pagina < $aantal_paginas) {
$volgende_pagina = $huidige_pagina + 1;
echo "<a href=\"".$_SERVER['REQUEST_URI']."&p=" . $volgende_pagina . "\"><b><i>[Volgende]</i></b></a>";
}
?>

Stel ik heb een pagina met 25 results.

Dan staat er op de begin pagina:

Pagina: 1 - 2 - 3 [Volgende]

Opzich correct. Maar de 1 is gewoon aanklikbaar (en die zou eigenlijk niet aanklikbaar moeten zijn en zou dikgedrukt moeten zijn). Als ik op de 1 klik, gaat hij naar de 2e pagina. Dat is niet goed natuurlijk.

M.a.w. als ik de pagina open staat hij op Pagina 0. Wat doe ik dan fout?
Bron: http://www.wmcity.nl/forum_topic.php?id=676511&ppp=20
Van enerlaatste post aangepast werkend gemaakt, getest en vorige + volgende knop erbij...

VB: http://party-vision.nl/pag_nr.php

Code:

<?php
// Database connectie maken
include('_PAGINAS/config.php');

// Alles uit database halen
$sql1 = mysql_query("SELECT * FROM tabel");
$res1 = mysql_num_rows($sql1);

// Als er meer items zijn als 0
if($res1 > 0)
{
	// Aantal per pagina en aangeven hoeveel paginas er zijn
    $per_pag = 5;
    $aant_pag =  ceil($res1 / $per_pag);

	// Huidige pagina een waarde geven
    if(isset($_GET['pag']))
	{
        $pagina = $_GET['pag'];
    }
	else
	{
		$pagina = 0;
	}

	// Bepalen vanaf welk rec we uit de db meoten halen
	$van = $pagina * $per_pag;
		
	// Gegevens van de huidige pagina uit de database halen
	$sql2 = mysql_query("SELECT * FROM tabel LIMIT $van, $per_pag");

	echo 'Pagina '.($pagina + 1).' van de '.$aant_pag.'<br>';

	// De gegevens echoën
	while($res2 = mysql_fetch_array($sql2))
	{
		echo $res2['id'].'<br>';
		echo $res2['bericht'];
		echo '<hr>';
	}

	// Alle pagina nummers echoën
	if($pagina > 0)
	{
		echo '<a href="?pag='.($pagina - 1).'">Prev</a> ';
	}
    for($nmr = 0; $nmr < $aant_pag; $nmr++)
	{
        if($_GET['pag'] == $nmr)
		{
            echo '<b>'.($nmr + 1).'</b>';
        }
		else
		{
            echo '<a href="?pag='.$nmr.'">'.($nmr + 1).'</a>';
		}
        if($nmr < $aant_pag - 1) {
            echo ", ";
        } 
    }
	if($aant_pag > $pagina + 1)
	{
		echo ' <a href="?pag='.($pagina + 1).'">Next</a>';
	}
}
else
{
    echo 'Er zijn momenteel geen ...... items';
} 

Reageren