Hier ist mal beschrieben, wie man eine solche Ausgabe auf mehreren Seiten verteilt ausgibt:
Nehmen wir an, die Einträge sind in einer MySQL-Datenbank in der Tabelle "table", und es gibt nur die Felder "Eintrag" und "Name".
Zunächst mal könnte man mit folgender SQL-Anweisung arbeiten:
$sql="SELECT * FROM table LIMIT 0,10";
die zweite Seite bekommt dann:
$sql="SELECT * FROM table LIMIT 10,10";
Die LIMIT-Funktion nimmt also immer nur von einem Startwert aus eine bestimmte Menge an Datensätzen: LIMIT start,menge
Soweit so gut, aber wir wollen ja nicht bei jedem Neueintrag das Script anpassen müssen, also sollte sich das automatisch berechnen.
Ermitteln wir also zuerst mal, wieviele Einträge in der Datenbank sind:
PHP-Code:
$db = mysql_connect ($sqlhost,$username,$passwort);
mysql_select_db ($database);
$sql = "SELECT * FROM `table`";
$result = mysql_query($sql,$db);
$number = mysql_num_rows($result);
PHP-Code:
$seiten=ceil($number/$proseite);
$sqlhost, $username, $passwort und $database sind die Zugangsdaten zur Datenbank und $proseite ist die Anzahl der Einträge pro Seite, das definieren wir irgendwo oben am Scriptanfang.
Dem Script müssen wir dann noch beim Aufruf übergeben, welche Seite angezeigt werden soll:
Code :
1 | <a rel="nofollow" href="http://www.tutorials.de/guestbook.php?page=1"> |
damit haben wir in der Variable $_GET['page'] die Seitenzahl, die angezeigt werden soll.
Ermitteln wir nun die Werte für LIMIT:
PHP-Code:
$start=$_GET['page'] * $proseite;
$sql="SELECT * FROM table LIMIT $start,$proseite";
$result = mysql_query($sql,$db);
PHP-Code:
$ende = $start + $proseite;
if ($ende>$number) { $ende = $number; }
PHP-Code:
echo "Zur Zeit sind $number Einträge im Gästebuch <br /> \n";
echo "Seite $page - Einträge von $start bis $ende <br /> \n";
while ($row = mysql_fetch_array($result)) {
echo "Eintrag von: ".$row['Name']." <br /> \n";
echo $row['Eintrag']."<br /> \n";
}
PHP-Code:
if ($_GET['page']>0) {
$i=$_GET['page']-1;
echo "<a href=\"guestbook.php?page=".$i."\"><previous</a>";
}
for($i=0; $i<=$seiten; $i++) {
if ($i==$_GET['page']) {
echo $i."";
}
else {
echo "<a href=\"guestbook.php?page=".$i."\">$i</a>";
}
}
if ($_GET['page']<$seiten) {
$i=$_GET['page']+1;
echo "<a href=\"guestbook.php?page=".$i."\">next></A>";
}

Hier nochmal das komplette Script zum runterladen:



Kommentar schreiben

Bereiche
Kategorien
Forum - Programming





Artikel bewerten