Kalma
Erfahrenes Mitglied
Hey,
ich habe das Blätter-funktions-tutorial vor langer Zeit mal gelernt, und ein bisschen verfolständigt, z.b. mit < zurück und vor > links und das der User auswählen kann, wie viele Einträge er pro Seite haben will und so weiter.
Allerdings habe ich ein Problem bei dem "vor >" Link.
Man sollte ja nicht noch weiter vorblättern können, wenn man schon auf der letzten Seite ist, wär ja sinnlos.
Nur, wie finde ich die letzte Seite heraus?
Hier ist der oberste teil meines php-scriptes:
und hier der teil für die Blätterfunktion
Wer kann mir helfen?
David
ich habe das Blätter-funktions-tutorial vor langer Zeit mal gelernt, und ein bisschen verfolständigt, z.b. mit < zurück und vor > links und das der User auswählen kann, wie viele Einträge er pro Seite haben will und so weiter.
Allerdings habe ich ein Problem bei dem "vor >" Link.
Man sollte ja nicht noch weiter vorblättern können, wenn man schon auf der letzten Seite ist, wär ja sinnlos.
Nur, wie finde ich die letzte Seite heraus?
Hier ist der oberste teil meines php-scriptes:
PHP:
<?php
//jetzt lesen wir alle einträge aus.
$Result = mysql_query("SELECT * FROM gaestebuch ORDER BY id DESC");
$eintrage = mysql_num_rows($Result); //hier zählen wir zuerst alle einträge
//jetzt prüfen wir, ob der user eine eigene anzahl pro seite angegeben hat
if ($_GET['e'] == "") //wenn nicht, dann ist standart 15
{
$maxproseite = 15;
}
else
{
//wenn doch, wird der wert hier aus der url geholt
$maxproseite = $_GET['e'];
}
$i = 0;
$seiten = $eintrage/$maxproseite; //hier errechnen wir alle seiten
/* Alternativ ginge auch folgende schreibweise, die jedoch viel länger ist
$Query = "SELECT * FROM gaestebuch ORDER BY id DESC;
$Result = mysql_query($Query);
*/
if (mysql_num_rows($Result) == 0) //mysql_num_rows($Result) zählt alle einträge in der db
{ //wenn die anzahl der einträge 0 ist, dann gibts ne meldung
echo "Es sind keine Einträge im Gästebuch";
}
else //wenn nicht, dann halt der rest
{
//hier die seiten ausgeben
echo "<div class=\"seite\">";
echo "Einträge pro Seite: ";
echo "<a href=\"?index=i&e=5\">5</a> · ";
echo "<a href=\"?index=i&e=10\">10</a> · ";
echo "<a href=\"?index=i&e=20\">20</a> · ";
echo "<a href=\"?index=i&e=30\">30</a> · ";
echo "<a href=\"?index=i&e=40\">40</a> · ";
echo "<a href=\"?index=i&e=50\">50</a> · ";
echo "<a href=\"?index=i&e=60\">60</a> · ";
echo "<a href=\"?index=i&e=70\">70</a> · ";
echo "<a href=\"?index=i&e=80\">80</a> · ";
echo "<a href=\"?index=i&e=100\">100</a> · ";
echo "<a href=\"?index=i&e=1000000000000000000\">Alle</a>";
echo "<br />";
echo "Seite ";
for($i = 1; $i - 1< $seiten; $i++)
{ //Ausgabe der Linkliste
if ($i == $_GET['page'])
{
//wenn die aktuelle seite mit der aus der url übereinstimmt, wird diese unterstrichen
echo "<a href=\"?gb=index&page=".$i."&e=$maxproseite\"><u>".$i."</u></a> · ";
}
else
{
echo "<a href=\"?gb=index&page=".$i."&e=$maxproseite\">".$i."</a> · ";
}
}
echo "</div>";
echo "<hr />";
if (!isset($_GET['page']))
{
//wenn keine seitenzahl gegeben ist, dann hier die einträge mit limit ($maxproseite) auslesen
//limit beschränkt die einträge
$Query = "SELECT * FROM gaestebuch ORDER BY id DESC LIMIT 0, ".$maxproseite.";";
}
else
{
//wenn die variable $p ($_GET['page']) aus der url gelesen wurde, dann hier die abfrage
//mit den "$abeintrag" errechnen, und die einträge von $abeintrag bis $maxproseite auslesen
$p = $_GET['page'];
$abeintrag = $p * $maxproseite - $maxproseite;
$Query = "SELECT * FROM gaestebuch ORDER BY id DESC LIMIT ".$abeintrag.", ".$maxproseite.";";
}
$Result2 = mysql_query($Query);
und hier der teil für die Blätterfunktion
PHP:
//die aktuelle seite wird mit GET ermittelt, und es wird einfach 1 seite abgezogen
$last = $_GET['page']-1;
if ($_GET['page'] == 1) //wenn die aktuelle seite 1 ist, dann kann man nicht weiter zurückblättern
{
echo "<< letze · ";
}
else
{
//andernfalls den link ausgeben
echo "<a href=\"?gb=index&page=$last&e=$maxproseite\"><< letze</a> · ";
}
for($i = 1; $i - 1< $seiten; $i++) //for ist auch eine schleife
{
//Ausgabe der Linkliste
if ($i == $_GET['page'])
{
//wenn die aktuelle seite mit der aus der url übereinstimmt, wird diese unterstrichen
echo "<a href=\"?gb=index&page=".$i."&e=$maxproseite\"><u>".$i."</u></a> · ";
}
else
{
echo "<a href=\"?gb=index&page=".$i."&e=$maxproseite\">".$i."</a> · ";
}
} //for beenden
//die aktuelle seite wird mit GET ermittelt, und es wird einfach 1 seite draufgerechnet
$next = $_GET['page']+1;
if ($_GET['page'] == $seiten) //wenn die aktuelle seite die letzte ist, dann kann man nicht weiter vorblättern
{
echo " nächste >>";
}
else
{
//andernfalls den link ausgeben
echo " <a href=\"?gb=index&page=$next&e=$maxproseite\">nächste >></a>";
}
Wer kann mir helfen?
David