|
Suchergebnis auf mehrere Seiten verteilen |
|
|
|
|
Dienstag, 19. September 2006 |
http://www.webmaster-resource.de/tricks/php/suchergebnis-auf-mehrere-seiten-verteilen.php
Wenn Sie auf Ihrer Seite viele Daten aus einer MySQL-Tabelle ausgeben, können Sie das Ergebnis auf mehrere Seiten verteilen. Wie das geht, erfahren Sie in diesem Artikel.
Binden Sie den folgenden Quellcode in Ihre Seite ein, die das Ergebnis der MySQL-Anfrage darstellen soll.
Quellcode
1.
<?php
2.
3.
$ErgebnisseProSeite = 10;
4.
5.
$DatabasePointer = mysql_connect("localhost", "User", "Passwort");
6.
mysql_select_db("Database");
7.
8.
if(!isset($_REQUEST['Ak
tuelleSeite']))
9.
{
10.
$AktuelleSeite = 0;
11.
}
12.
else
13.
{
14.
$AktuelleSeite = $_REQUEST['AktuelleSeite'];
15.
}
16.
17.
$ResultPointer = mysql_query("SELECT * FROM Tabelle LIMIT $AktuelleSeite, $ErgebnisseProSeite", $DatabasePointer);
18.
$Anzahl = mysql_num_rows(mysql_query("SELECT * FROM Tabelle", $DatabasePointer));
19.
20.
21.
// Hier die Ausgabe des Ergebnisses
22.
23.
24.
if($Anzahl > $ErgebnisseProSeite)
25.
{
26.
$Seiten = intval($Anzahl/$ErgebnisseProSeite);
27.
28.
if($Anzahl%$ErgebnisseProSe
ite)
29.
{
30.
$Seiten++;
31.
}
32.
}
33.
34.
for($i = 1; $i <= $Seiten; $i++)
35.
{
36.
echo"<a href=\"",
37.
$_SERVER['PHP_SELF'],
38.
"?AktuelleSeite=",
39.
($i-1)*$E
rgebnisseProSeite,
40.
"\">$i</a> ";
41.
}
42.
43.
?>
In der Variable $ErgebnisseProSeite müssen Sie angeben, wie viele Ergebnisse pro Seite angezeigt werden sollen.
Anschließend verbinden Sie sich wie gewohnt mit Ihrem MySQL-Server (Z. 5) und wählen Ihre Datenbank aus (Z. 6).
In den Zeilen 17 und 18 müssen Sie zweimal Ihre MySQL-Anfrage notieren, beim ersten Mal zusätzlich mit der Angabe LIMIT $AktuelleSeite, $ErgebnisseProSeite. Dies bewirkt, dass nur die für diese Seite gültigen Ergebnisse angezeigt werden (z.B. 0-10 oder 30-40).
Danach notieren Sie die Ausgabe des Ergebnisses der MySQL-Anfrage (hier in der Variable $ResultPointer).
Vor dem Ende der Seite binden Sie noch die Zeilen 24 bis 41 ein, die für die Ausgabe der Links zu den anderen Ergebnisseiten verantwortlich sind. Je nach dem, wie viele Ergebnisse Ihre Anfrage ergab, finden Sie dort eine entsprechende Anzahl Links. |