Hallo,

Ik ben bezig met een website, hiervoor heb ik een include systeem gevonden(volgens mij op deze website). Dit werkte prima. Nu ben ik bezig met een gastenboek, en bij een gasten boek is het handig om pagina nummers te gebruiken. Ik heb iets gevonden op internet en dit werkte goed, maar nu ik de pagina in me include systeem zet gaat het mis....

De pagina wordt gewoon geopend en de eerste 3 berichten worden getoond, maar de pagina nummers werken niet. Ik denk zelf dat dit 2 redenen heeft:

-van .php wordt .html gemaakt in een .htaccess

en voor de andere rede is het beter op de code van de index te bekijken:

index.php:
<?php
$map = "inc/"; // De map waar de includes inkomen, (moet een slash achter).
$pagina404 = $map."error404.php"; // de 404 pagina
$paginahome = $map."home.php"; // De home pagina

// staat ?pagina=iets in de url?
if(isset($_GET['pagina'])) {
$pagina = $map.basename($_GET['pagina']).".php"; // De totale map en bestandnaam bepalen
if(!file_exists($pagina)) {
$pagina = $pagina404;
}
} else {
$pagina = $paginahome;
}

$paginanaam = str_replace('.php', '', basename($pagina));
$title = " ". ucfirst($paginanaam);
// ucfirst is een functie om van de eerste letter een hoofdletter te maken, de rest klein letters.
?>

Deze code zal aangepast moeten worden, maar ik heb geen idee waar te beginnen. Misschien dat iemand mij zou kunnen helpen??

Hieronder de code van het pagina nummer systeem:


<?php

$max_entries_per_page = 3;

// Het pagina nummer opvragen uit de url. Als deze niet vermeld is in de url, of dat deze niet nummeriek is, dan gebruiken we de laagste waarde. Dus het cijfer 1.
$pagenum = (isset($_GET['page_num']) && is_numeric($_GET['page_num'])) ? $_GET['page_num'] : 1;

// We gaan nu het aantal reacties opvragen uit de database
$query = mysql_query("SELECT * FROM gastenboek") or die(mysql_error());
$aantal_reacties = mysql_num_rows($query);

// Nu kunnen we berekenen hoeveel pagina's er nodig zijn voor alle reacties.
$totaal = ceil( $aantal_reacties / $max_entries_per_page);

// Ook kunnen we erachter komen vanaf welke row we gaan selecteren uit de database.
$limit = (($pagenum -1) * (int) $max_entries_per_page);

// En tot slot kunnen we dus de query uitvoeren
$query = mysql_query("SELECT * FROM gastenboek ORDER BY datum DESC LIMIT ". $limit .", ". $max_entries_per_page);
?>

<?php
// De url om naar de vorige pagina te gaan. Als het pagina nummer niet groter is dan 1, dan hoeven we ook geen url te maken.
echo $url_vorige = ($pagenum > 1) ? '<a href="?page_num='.($pagenum-1).'">Vorige</a>' : 'Vorige';

// De url om naar de volgende pagina te gaan. Als het totaal aantal berichten groter is dan de huige paginanummer, dan maken we een url. Anders niet.
echo $url_volgende = ($pagenum < $totaal) ? '<a href="?page_num='.($pagenum+1).'">Volgende</a>' : 'Volgende';
?>

Ik heb ook nog de code van het menu:
<a title='Home pagina' href='home.html'>Home</a>

Ik zou deze natuurijk kunnen aanpassen in:
<a href='index.php?pagina=home'>Home</a>

Ik hoop dat iemand hier een oplossing voor heeft zonder dat ik de hele website hoef om te gooien!?

Alvast bedank
Probeer <a href="?page_num='.($pagenum-1).'"> eens te veranderen in jouw url zoals index.php?pagina=gastenboek&page_num=$pagenum-1

Dit typ ik vanaf mijn mobiel vandaar dat het niet compleet is maar ik hoop dat je snapt wat ik bedoel.
Als je daarbij [php]http_build_url[/php] gebruikt hoef je zelf niet zo moeilijk te doen met de ? en & etc.
Perfect dit is precies wat ik nodig had!!

over http build url ga ik nog even lezen, was niet iets wat ik in 5 minuten kon begrijpen.

Bedankt voor de reacties!!!

Reageren