ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
637
637
EMPFEHLEN
-
Hallo!
Ich habe ein Gästebuch geschrieben und darin eine "Blätter-Navigation" eingebaut, die ich als Script vorliegen hatte. Es funktioniert alles wunderbar, nur ein kleines Problem tritt auf: Sofern der Restwert der Division von "Anzahl aller Einträge" durch "Einträge pro Seite" den Wert 0 ergibt, erzeuge ich eine weitere (unnötige) letzte Seite, die jedoch keine Einträge auflistet.
Der Basis-Code sieht folgendermaßen aus:
Und dann noch der Code zum Blättern:PHP-Code:// ich linke folgendermaßen auf das Gästebuch: index.php?navigation=guestbook
// Wenn beim ersten betreten der Gästebuchseite die Seitenzahl nicht angegeben ist,
// setze mir diese auf "Seite 0"
if (!isset($_GET['page'])) { $_GET['page'] = 0; }
// Einträge pro Seite
$proseite=3;
// Gesamtanzahl Einträge ermitteln
$sql = "SELECT * FROM guestbook ORDER BY id DESC";
$result = mysql_query($sql);
$number = mysql_num_rows($result);
// Anzahl Seiten festlegen
$seiten=floor($number/$proseite);
$start=$_GET['page'] * $proseite;
// entsprechende Einträge auslesen
$sql="SELECT * FROM neue_webs ORDER BY id DESC LIMIT $start,$proseite";
$result = mysql_query($sql);
$ende = $start + $proseite;
if ($ende>$number) { $ende = $number; }
Die Ausgabe liste ich dann mitPHP-Code:// RÜCKWÄRTS BLÄTTERN
if ($_GET['page']>0) {
$i=$_GET['page']-1;
echo "<a class=\"a10grau\" href=\"index.php?navigation=guestbook&page=$i\">« zurück</a>";
}
// Wenn auch zurückgeblättert werden soll, dann trenne mir vorwärts und rückwärts mit: if ($_GET['page']<$seiten && $_GET['page']>0) {
echo ' | ';
}
// VORWÄRTS BLÄTTERN
if ($_GET['page']<$seiten) {
$i=$_GET['page']+1;
echo "<a class=\"a10grau\" href=\"index.php?navigation=guestbook&page=$i\">weiter »</a>";
}
Meine Frage ist nun: Wie kann ich es ermöglichen, dass eben diese letzte leere Seite nicht angezeigt wird?PHP-Code:while ($row = mysql_fetch_assoc($result)) {
// hier steht der CSS-Formatierungscode um die Einträge darzustellen
}
Ich habe schon diverse Sachen probiert, aber ich vermute, dass es nicht mit einer einfachen Bastelei an meinem Code selbst getan ist. Vielmehr ist es doch notwendig, auf den nichtvorhandenen Divisionsrest einzugehen, oder nicht?
Ich habe auch schon ausgiebig gegooglet, das hat mir aber leider auch nicht weitergeholfen.
Deswegen habe ich hier diesen Thread eröffnet und hoffe auf eine hilfreiche Antwort!Geändert von Hektik (22.02.06 um 17:43 Uhr)
-
Huhuli,
Ich habs mir nicht ganz genau angesehen, aber mir ist diese Zeile aufgefallen
Änder das mal ab inPHP-Code:// Anzahl Seiten festlegen
$seiten=floor($number/$proseite);
$start=$_GET['page'] * $proseite;
Bei der Funktion floor() wird der Rückgabewert aufgerundet, bei ceil() abgerundet. Am besten schaust du dir die Refenz auf http://de.php.net/manual/de/function.ceil.php nochmal an.PHP-Code:// Anzahl Seiten festlegen
$seiten=ceil($number/$proseite);
$start=$_GET['page'] * $proseite;
-
... es verhält sich genau umgekehrt.Bei der Funktion floor() wird der Rückgabewert aufgerundet, bei ceil() abgerundet.

SCNR
.
-
Huhuli zurück!
Zitat von muhkuh
Eigentlich ist es genau andersherum: floor() rundet ab (floor - der Boden) und ceil() rundet auf (to ceil - die Decke verputzen). Somit konnte dein Lösungsvorschlag von Anfang an nicht funktionieren. Ich habe es aber trotzdem einmal ausprobiert und (mit Erstaunen) festgestellt, dass sich rein gar nichts an meinem Problem ändert.
Auf der Websuche nach "Divisionsrestwert" habe ich gefunden, dass man mit
den Divisionsrest bestimmen kann.PHP-Code:$x = $number%$proseite;
Würde mir das vllt irgendwie eher weiter helfen?
-
ICH HABS

Der Fehler lag am Vorwärtsblättern. Statt
hab ich jetztPHP-Code:// VORWÄRTS BLÄTTERN
if ($_GET['page']<$seiten) {
$i=$_GET['page']+1;
echo "<a class=\"a10grau\" href=\"index.php?navigation=guestbook&page=$i\">weiter »</a>";
}
und es funktioniert.PHP-Code:// VORWÄRTS BLÄTTERN
if ($number%$proseite == 0){$test = $_GET['page']+1;}
if ($test<$seiten) {
if ($_GET['page']<$seiten) {
$i=$_GET['page']+1;
echo "<a class=\"a10grau\" href=\"index.php?navigation=guestbook&page=$i\">weiter »</a>";
}
}
Wie ich vermutet habe, konnte ich es mit hilfe des Divisionsrestes lösen. Ist der Divisionsrest nun = 0 , so addiert er mir zur Seitenzahl einen dazu und das Script denkt, das wäre schon die letzte SeiteGeändert von Hektik (23.02.06 um 00:30 Uhr)
Ähnliche Themen
-
$_POST['submit'] bleibt leer beim Formular Abschicken mit submit()
Von godfather_al im Forum Javascript & AjaxAntworten: 5Letzter Beitrag: 23.12.10, 14:13 -
Monitor bleibt beim Starten manchmal im StandBy
Von GartenUmgraben im Forum HardwareAntworten: 38Letzter Beitrag: 25.08.08, 18:27 -
Vorherige Seite bleibt beim Wechsel sichtbar
Von Fugee21 im Forum Flash PlattformAntworten: 2Letzter Beitrag: 09.12.07, 17:44 -
Meine Seite wird im IE nicht angezeigt. Die Seite bleibt leer
Von Daddi im Forum HTML & XHTMLAntworten: 16Letzter Beitrag: 22.10.05, 18:08 -
seitenweise blättern -> next page leer
Von Wolf of Doom im Forum PHPAntworten: 7Letzter Beitrag: 22.02.04, 01:00





Zitieren
Login






[PHP] [Codeschnipsel] ImageColor aus HTML-Farbcodierung erstellen