Ik ben bezig met een nieuws-website waarbij de nieuwsberichten in een database staan.
Nu wou ik ook een pagina navigatie inbouwen, waardoor er telkens maar 3 nieuwsberichten per pagina komen te staan. Alleen wilt dit niet echt lukken... :(
Als er in de URL ?pagenum=1 komt te staan, laat hij nog steeds de URL's previous en first zien.
& als er in de URL ?pagenum=2 (de laatste pagina) komt te staan, dan geeft hij nog altijd de URL's Next en last.
Ook laat hij op de laatste pagina nog steeds 3 nieuwsberichten zien, terwijl 2 ervan al op de 1ste pagina zijn getoond. Of is dit normaal?
Pagina 1 (zonder $_GET variabele)
http://i66.photobucket.com/albums/h262/deatwish/1.jpg
Pagina 1 (Met $_GET['pagenum'] = 1)
http://i66.photobucket.com/albums/h262/deatwish/urlpagenum1.jpg
Pagina 2 (laatste pagina met $_GET['pagenum'] = 2)
http://i66.photobucket.com/albums/h262/deatwish/urlpagenum2.jpg
Database:
http://i66.photobucket.com/albums/h262/deatwish/database.jpg
& is het mogelijk om er ook een navigatie met nummers van te maken?
Bv.
First -- 1 2 3 4 5 6 ... 120 -- Last
waarbij 4 de actieve pagina is
Dit is mijn code tot hiertoe:
<?php ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
?>
<div id="content">
<?php
//SETTING PAGINATION -->
if (!isset($_GET['pagenum'])){
$pagenum = 1;
}else{
$pagenum = $_GET['pagenum'];
}
$query = mysql_query("SELECT newsid FROM news") or die("An error has occured! ".mysql_error() .$query);
$rows = mysql_num_rows($query);
$page_rows = 3;
$last = ceil($rows/$page_rows);
if ($pagenum < 1){
$pagenum = 1;
}elseif($pagenum > $last){
$pagenum = $last;
}
$max = 'limit ' .($pagenum - 1) .',' .$page_rows;
echo('pagina: '.$pagenum);
echo('rijen: '.$page_rows);
echo('laatste: '.$last);
?>
<center><h1>Latest news</h1></center>
<div class='news'>
<?php
$query= "SELECT newsid, title, newsmessage, date, newsphoto FROM news ORDER BY newsid DESC $max";
$resultaat = mysql_query($query) or die("An error has occured! ".mysql_error().$query);
while($rij= mysql_fetch_array($resultaat)){
//Count how many comments are given
$newsID = $rij['newsid'];
$query2= "SELECT COUNT(id) AS countComments FROM comments WHERE newsid='".$newsID."'";
$resultaat2 = mysql_query($query2) or die("An error has occured! ".mysql_error() .$query2);
$rij2 = mysql_fetch_array($resultaat2);
$countComments = $rij2['countComments'];
//1 COMMENT OR MORE COMMENTS?
if($countComments=='1'){
$countComments="1 COMMENT";
}else{
$countComments=$countComments." COMMENTS";
}
$title = $rij['title'];
$newsmessage = $rij['newsmessage'];
$date = $rij['date'];
$photo = $rij['newsphoto'];
echo('
<div class="newsItem">
<div class="newsTitle">'.$title.'</div>
<div class="newsInfo">'.$date.'</div>
<div class="containerMessage">
<img class="newsIcon" src="'.$photo.'" />
<div class="newsMessage">'.$newsmessage.'</div>
</div>
<div class="newsButtons">
<a class="button" href="#" onclick="this.blur(); return false;"><span>READ MORE</span></a>
<a class="button" href="#" onclick="this.blur(); return false;"><span>'.$countComments.'</span></a>
</div>
<hr />
</div>');
}
?>
</div>
<div class="paginator">
<?php
echo ('--Page '.$pagenum.' of '.$last.'--');
if ($pagenum !== 1 ){
echo ('<a href="?pagenum=1"> <<-First</a> ');
$previous = $pagenum-1;
echo ('<a href="?pagenum='.$previous.'"> <-Previous</a> ');
}
if ($pagenum !== $last) {
$next = $pagenum+1;
echo ('<a href="?pagenum='.$next.'">Next -></a> ');
echo ('<a href="?pagenum='.$last.'">Last ->></a> ');
}
?>
</div>
</div>