Crew algemeen |
|
Dit had ik pas geleden nog gemaakt.
Ik heb hem even een beetje aangepast, en er een voorbeeld bij gedaan hoe hij gebruikt kan worden.
Er zit meteen een check in, voor de url.
Hij kijkt of er een ? staat in de url, als dat zo is gebruikt hij een & om de nav. in te zetten
pagina navigatie class:
<?PHP
class pagenav
{
function nav($iPagina, $iTotaalPaginas, $sPagina)
{
$this->nav = "";
if(ereg("[?]", $sPagina))
{
$this->add = "&";
} else
{
$this->add = "?";
}
if(($iPagina-1) > -1)
{
$this->nav .= "<A HREF='".$sPagina.$this->add."nav=".($iPagina-1)."'>Vorige</A> - ";
}
for($i = 0; $i < $iTotaalPaginas; $i++)
{
if($i == $iPagina)
{
$this->nav .= "<B>".$i."</B> - ";
} else
{
$this->nav .= "<A HREF='".$sPagina.$this->add."nav=".($i)."'>".$i."</A> - ";
}
}
if(($iPagina+1) < $iTotaalPaginas)
{
// hier zet hij " - " er nog achter, zodat het juist werkt
// zou dit er niet staan, en zou er nog wel een 'volgende' zijn,
// dan zou hij een de laatste 3 letters van 'volgende' weg halen
$this->nav .= "<A HREF='".$sPagina.$this->add."nav=".($iPagina+1)."'>Volgende</A> - ";
}
$this->nav = substr($this->nav, 0, strlen($this->nav)-3);
return $this->nav;
}
}
?>
<?PHP class pagenav { function nav($iPagina, $iTotaalPaginas, $sPagina) { $this->nav = ""; if(ereg("[?]", $sPagina)) { $this->add = "&"; } else { $this->add = "?"; } if(($iPagina-1) > -1) { $this->nav .= "<A HREF='".$sPagina.$this->add."nav=".($iPagina-1)."'>Vorige</A> - "; } for($i = 0; $i < $iTotaalPaginas; $i++) { if($i == $iPagina) { $this->nav .= "<B>".$i."</B> - "; } else { $this->nav .= "<A HREF='".$sPagina.$this->add."nav=".($i)."'>".$i."</A> - "; } } if(($iPagina+1) < $iTotaalPaginas) { // hier zet hij " - " er nog achter, zodat het juist werkt // zou dit er niet staan, en zou er nog wel een 'volgende' zijn, // dan zou hij een de laatste 3 letters van 'volgende' weg halen $this->nav .= "<A HREF='".$sPagina.$this->add."nav=".($iPagina+1)."'>Volgende</A> - "; } return $this->nav; } } ?>
voorbeeld hoe het te gebruiken:
<?PHP
// de class includen
include("pagenav.php");
// de class starten
$cPageNav = new pagenav;
// nav uit de url ophalen
if(!IsSet($_GET['nav']) || !Is_Numeric($_GET['nav']))
{
// nav is niet geset, of geen getal
// nav = 0
$iNav = 0;
} else
{
// nav is wel geset en een getal
// nav is nav uit de url
$iNav = $_GET['nav'];
}
// 5 heb ik hier ff als max. aantal per pagina genomen
$iStart = ($iNav*5);
// max aantal berichten per pagina
$iEnd = 5;
// query
$sQuery = "SELECT * FROM gastenboek ORDER BY ID ASC LIMIT ".$iStart.", ".$iEnd;
// query uitvoeren
if(!$rResult = MySQL_Query($sQuery))
{
// niet uitgevoerd, error weergeven
echo MySQL_Error()."<BR>".MySQL_Errno();
} else
{
// while loop voor de berichten
while($aFetch = MySQL_Fetch_assoc($rResult))
{
// weergeven van bericht
}
// query voor aantal paginas
$sQueryTotaalPaginas = "SELECT COUNT(ID) FROM gastenboek";
// query uitvoeren
if(!$rResultTotaalPaginas = MySQL_Query($sQueryTotaalPaginas))
{
// niet uitgevoerd, error weergeven
echo MySQL_Error()."<BR>".MySQL_Errno();
} else
{
// totaal berichten uit query-result halen
$iTotaalBerichten = MySQL_Result($rResultTotaalPaginas, 0);
// totaal paginas ophalen
// weer 5 als voorbeeld
$iTotaalPaginas = ceil($iTotaalBerichten/5);
?>
<!--
code voor pagina navigatie
hier staat het in een tabel,
maar dat is makkelijk aan te passen
-->
<hr class='hr'>
<table width='100%' cellpadding='0' cellspacing='0'>
<tr>
<td class='tableHead'>
<div class='textMargin'>
Pagina navigatie
</div>
</td>
</tr>
<tr>
<td class='tableRow'>
<div class='textMargin'>
<?PHP
// pagina navigatie printen
echo $cPageNav->nav($iNav, $iTotaalPaginas, "index.php?a=gastenboek");
?>
</div>
</td>
</tr>
</table>
<?PHP
}
?>
<?PHP // de class includen include("pagenav.php"); // de class starten $cPageNav = new pagenav; // nav uit de url ophalen { // nav is niet geset, of geen getal // nav = 0 $iNav = 0; } else { // nav is wel geset en een getal // nav is nav uit de url $iNav = $_GET['nav']; } // 5 heb ik hier ff als max. aantal per pagina genomen $iStart = ($iNav*5); // max aantal berichten per pagina $iEnd = 5; // query $sQuery = "SELECT * FROM gastenboek ORDER BY ID ASC LIMIT ".$iStart.", ".$iEnd; // query uitvoeren { // niet uitgevoerd, error weergeven } else { // while loop voor de berichten { // weergeven van bericht } // query voor aantal paginas $sQueryTotaalPaginas = "SELECT COUNT(ID) FROM gastenboek"; // query uitvoeren if(!$rResultTotaalPaginas = MySQL_Query($sQueryTotaalPaginas)) { // niet uitgevoerd, error weergeven } else { // totaal berichten uit query-result halen // totaal paginas ophalen // weer 5 als voorbeeld $iTotaalPaginas = ceil($iTotaalBerichten/5); ?> <!-- code voor pagina navigatie hier staat het in een tabel, maar dat is makkelijk aan te passen --> <hr class='hr'> <table width='100%' cellpadding='0' cellspacing='0'> <tr> <td class='tableHead'> <div class='textMargin'> Pagina navigatie </div> </td> </tr> <tr> <td class='tableRow'> <div class='textMargin'> <?PHP // pagina navigatie printen echo $cPageNav->nav($iNav, $iTotaalPaginas, "index.php?a=gastenboek"); ?> </div> </td> </tr> </table> <?PHP } ?>
|