Gästebuch mit mehreren Seiten
Christian
- php
Hallo,
Wie muss ich folgendes Skript modifizieren um nur die ersten 10 Einträge meines Gästebuchs auf der ersten Seite darzustellen und die weiteren auf nachfolgenden Seiten, welche mittels automatisch generierter Links (vorherige Seite und nächste Seite) anzusteuern sind?
<?php
$datei=file("test.txt");
for($a=10;$a<count($datei);$a++)
{
$daten=explode("*|*",$datei[$a]);
$name=$daten[0];
$email=$daten[1];
$text=$daten[2];
echo "$name <br>\n";
echo "$email <br>\n<br>\n";
echo "$text <br>\n<br>\n<hr><br>\n<br>\n";
}
?>
Gruß,
Christian
Hallo,
<?php
$datei=file("test.txt");
// Falls nicht mehr genug Eintraege da sind
if($b+10 > count($datei))
$c = count($datei);
else
$c = $b+10;
for($a=$b;$a<$c;$a++)
{
...
}
?>
Jetzt brauchst Du nur noch $b als Anfangswert jedes Mal mit übergeben, d.h. auf Seite 1 $b=1, auf Seite 2 $b=11,...
Grüße aus Würzburg
Julian
Hallo!
Hast Du das heute nicht schon einmal gefragt?
Wie muss ich folgendes Skript modifizieren um nur die ersten 10 Einträge meines Gästebuchs auf der ersten Seite darzustellen und die weiteren auf nachfolgenden Seiten, welche mittels automatisch generierter Links (vorherige Seite und nächste Seite) anzusteuern sind?
// Beispiel: gast.phtml
$anzahl = 10;
$datei = "gaestebuch.txt";
// gibt es die Datei gaestebuch.txt? Fehlermeldung vorbeugen
if(file_exists($datei))
{
$daten = file($datei);
}
// beim Start von gast.phtml, oder wenn $seite nicht übergeben wird
if(!isset($seite))
{
$seite = 1;
}
// ist $daten ein Array? Fehlermeldung vorbeugen
if(is_array($daten))
{
$ausgabe_daten = array_slice($daten, (($seite - 1) * $anzahl), $anzahl);
for($a=0;$a<count($ausgabe_daten);$a++)
{
$wert=explode("*|*",$ausgabe_daten[$a]);
$name=$wert[0];
$email=$wert[1];
$text=$wert[2];
echo "$name <br>\n";
echo "$email <br>\n<br>\n";
echo "$text <br>\n<br>\n<hr><br>\n<br>\n";
}
$seite_zurueck = $seite - 1;
$seite_vorwaerts = $seite + 1;
$daten_gesamt = count($daten);
$summe_seite_anzahl = ($seite*$anzahl)
if($seite>1)
{
echo "<a href="gast.phtml?seite=" . $seite_zurueck . "">zurück</a>";
}
if($daten_gesamt > $summe_seite_anzahl)
{
echo "<a href="gast.phtml?seite=" . $seite_vorwaerts . "">vorwärts</a>";
}
}
Das ist ein funktionstüchtige Grundgerüst. Versuche zu versehen was passiert und baue es nicht einfach so ein. Lasse Dir diese Variablen $seite_zurueck, $seite_vorwaerts, $daten_gesamt, $summe_seite_anzahl mal mit echo() ausgeben, dann verstehst Du den Ablauf. Schaue nach, was array_slice() tut.
array_slice(): http://www.php.net/manual/de/function.array-slice.php
file_exists(): http://www.php.net/manual/de/function.file_exists.php
is_array(): http://www.php.net/manual/de/function.is_array.php
MfG, André Laugks