PHP gevorderde |
|
Indien je server php toestaat kan je het zo doen:
Gebruik de volgende class dan eens (opslaan als class.pagenav.php):
<?PHP
class pagenav
{
function pagenav ($totaal, $perpage, $current, $linkstart)
{
/*
$totaal = Totaal aantal items (mysql_num_rows)
$perpage = Het max. aantal items per pagina
$current = Is de huidige $nav pagina (?nav=2 oid)
$linkstart = Is wat achter de ? en voor &nav= staat. Voorbeeld: $linkstart = "PageID=1&Mail=ja&Skin=1";
*/
$this->totaal = $totaal;
$this->perpage = $perpage;
if (!$current > 0) $current = 1;
$this->current = $current;
$this->linkstart = $linkstart;
}
function get_startpoint ()
{
/*
Met deze functie krijg je een getal terug wat je voor LIMIT $getal, $aantal kan gebruiken.
*/
$p = $this->current - 1;
$r = $p * $this->perpage;
return $r;
}
function makenav ()
{
/*
Deze functie geeft een string terug met daarin : Vorige | 1 | 2 | 3 | 4 | Volgende
*/
$this->pages = $this->totaal / $this->perpage;
$this->pages = ceil($this->pages);
for ($i = 1; $i < $this->pages + 1; $i++)
{
if ($this->current == $i)
{
$nav[] = "<B>".$i."</B>";
}
else
{
$nav[] = "<a href='?" . $this->linkstart . "&nav=" . $i . "'>".$i."</a>";
}
}
if ($this->current != 1)
{
array_unshift($nav, "<a href='?" . $this->linkstart . "&nav=" . ($this->current - 1) . "'>Vorige</a>");
}
else
{
array_unshift($nav, "Vorige");
}
if ($this->current < $this->pages)
{
$nav[] = "<a href='?" . $this->linkstart . "&nav=" . ($this->current + 1) . "'>Volgende</a>";
}
else
{
$nav[] = "Volgende";
}
$nav = implode (" | ", $nav);
return $nav;
}
}
?>
<?PHP class pagenav { function pagenav ($totaal, $perpage, $current, $linkstart) { /* $totaal = Totaal aantal items (mysql_num_rows) $perpage = Het max. aantal items per pagina $current = Is de huidige $nav pagina (?nav=2 oid) $linkstart = Is wat achter de ? en voor &nav= staat. Voorbeeld: $linkstart = "PageID=1&Mail=ja&Skin=1"; */ $this->totaal = $totaal; $this->perpage = $perpage; if (!$current > 0) $current = 1; $this->current = $current; $this->linkstart = $linkstart; } function get_startpoint () { /* Met deze functie krijg je een getal terug wat je voor LIMIT $getal, $aantal kan gebruiken. */ $p = $this->current - 1; $r = $p * $this->perpage; return $r; } function makenav () { /* Deze functie geeft een string terug met daarin : Vorige | 1 | 2 | 3 | 4 | Volgende */ $this->pages = $this->totaal / $this->perpage; $this->pages = ceil($this->pages); for ($i = 1; $i < $this->pages + 1; $i++) { if ($this->current == $i) { $nav[] = "<B>".$i."</B>"; } else { $nav[] = "<a href='?" . $this->linkstart . "&nav=" . $i . "'>".$i."</a>"; } } if ($this->current != 1) { array_unshift($nav, "<a href='?" . $this->linkstart . "&nav=" . ($this->current - 1) . "'>Vorige</a>"); } else { } if ($this->current < $this->pages) { $nav[] = "<a href='?" . $this->linkstart . "&nav=" . ($this->current + 1) . "'>Volgende</a>"; } else { $nav[] = "Volgende"; } return $nav; } } ?>
Je gebruikt hem zo op bijv. je gastenboek-lezen-pagina:
<?PHP
include("class.pagenav.php");
$sQuery1 = "SELECT * FROM <tabel>";
if(!$sResult1 = MySQL_Query($sQuery1))
{
echo "Error!- Query kan niet uitgevoerd worden!<BR>";
echo MySQL_Error();
echo "<BR>";
echo MySQL_Errno();
} else
{
$iAantal1 = MySQL_Num_Rows($sResult1);
if(IsSet($_GET['nav']))
{
$nav = $_GET['nav'];
} else
{
$nav = "";
}
$nav = new pagenav ($iAantal1, $max['bericht'], $nav, "PageID=1");
$van = $nav->get_startpoint(); // startpunt voor ophalen nieuwsberichten
// deze query is de echte query.
// door deze query worden de nieuwsberichten voor die pagina
// opgehaald. Dus bijv: vanaf 50 worden de volgende 50 opgehaald
$sQuery2 = "SELECT * FROM gastenboek_berichten WHERE ban='0' ORDER BY id DESC LIMIT ".$van.", ".$max['bericht'];
if(!$sResult2 = MySQL_Query($sQuery2))
{
echo "Error!- Query kan niet uitgevoerd worden!<BR>";
echo MySQL_Error();
echo "<BR>";
echo MySQL_Errno();
} else
{
$iNum = MySQL_Num_Rows($sResult2);
if($iNum > 0)
{
while($aFetch = MySQL_Fetch_Assoc($sResult2))
{
// je informatie
}
}
}
}
?>
<?PHP include("class.pagenav.php"); $sQuery1 = "SELECT * FROM <tabel>"; { echo "Error!- Query kan niet uitgevoerd worden!<BR>"; } else { { $nav = $_GET['nav']; } else { $nav = ""; } $nav = new pagenav ($iAantal1, $max['bericht'], $nav, "PageID=1"); $van = $nav->get_startpoint(); // startpunt voor ophalen nieuwsberichten // deze query is de echte query. // door deze query worden de nieuwsberichten voor die pagina // opgehaald. Dus bijv: vanaf 50 worden de volgende 50 opgehaald $sQuery2 = "SELECT * FROM gastenboek_berichten WHERE ban='0' ORDER BY id DESC LIMIT ".$van.", ".$max['bericht']; { echo "Error!- Query kan niet uitgevoerd worden!<BR>"; } else { if($iNum > 0) { { // je informatie } } } } ?>
Succes,
Zwobbel |