Gästebuch mit Beschränkung auf 10 Einträge/Seite

SilentWarrior

Erfahrenes Mitglied
Hallo zusammen

Ich denke, mein Problem dürfte bekannt und wohl auch schon des Öfteren hier behandelt worden sein.
Folgendes: Ich versuche, ein Gästebuch mit MySQL zu machen. Das funzt soweit, die Einträge kommen an, der neuste zu oberst. (mit DESC)

Jetzt ist aber das Problem: Wie kann ich unten dynamisch eine Leiste erzeugen, in der abhängig von der Anzahl Einträge folgendes steht:

< 1 2 3 4 ... >

Beim Klick kommt man auf die entsprechende Seite.

Ich habs mal mit folgender Methode probiert, aber irgendwas klappt da nicht. Da ich MySQL noch ziemlich schlecht kenne, hoffe ich, dass mir einer von euch Profis helfen kann. :)

$anzahl = "SELECT COUNT(id) FROM eintraege";
$seitenanzahl = mysql_query($anzahl);
$seitenanzahl++;
for ($i=2;$i<=$seitenanzahl;$i++)
{
$file = fopen("seite$i.php","w+");
$j = $i * 10 - 9;
$reinschreiben = "SELECT eintrag FROM eintraege ORDER BY id DESC LIMIT $j, 10";
$gb = mysql_query($reinschreiben);
while($row = mysql_fetch_object($gb))
{
(echo) $row->eintrag;
}
fwrite($file, --- ??? ---);
fclose($file);
echo "<a href=\"seite$i.php\">$i</a>";
}

Das gute ist: Die Dateien werden schon erzeugt. Also, danach habe ich die Datei seite1.php, seite2.php usw., aber wie kann ich dort drin die Inhalte der MySQL-Tabelle ausgeben?

Gruss

SilentWarrior
 
Grundsaetzlicher Fehler mit Seiten erzeugen.

Mach alles in einer seite.
Du uebergibst eine Variable mit der letzten Id der eintraege der vorgaengerseite

Sprich du bekommst die eintraege

Guestbook.php :

id nick text
1| Mr.Blub| hi wie gehts dir
....
10 | HolyFly| Gruesse |

du uebergibst die letzte id an deinen Link

Guestbook.php?lastid=$lastid

daraufhin kannst du auch auf der folgeseite ganz einfach mit
select top 10 * from guestbook where id > $lastid

Und schwupps :)
 
Hi!
Danke für die schnelle Antwort. Daran hab ich auch schon gedacht, hab dann aber irgendwie gedacht, dass es so besser geht.

Kann ich dann das direkt alles in einer Datei lassen oder sollte ich besser den unteren Teil (also das eigentliche Gästebuch) mit include einbinden?

- SilentWarrior
 
sorry
war doch net böse gemeint
Ich fand das eigentlich super von dir !
auf die Idee wäre ich nicht gekommen.
Also nicht als Kritik sehen
sorry Holyfly
 
offtopic

um mal ne unabhängige meinung zu dem abzulassen:

auch ich habe den post so verstanden wie holyfly.. daher bitte beim nächsten mal aufpassen was du schreibst boli ;)

is jez keine drohung sondern ein hinweis, nicht das mich jemand falsch versteht ;)

/offtopic
 
Kann ich das auch wenn´s nicht hier reingehört mit ASP machen ?
Mir kommt das so vor als das (top 10 Select) mit ASP gemacht wird was du da hingeschrieben hast ?;)
 
Ich code ASP und PHP drum verwechsel ich ab & zu mal was :)

Klar geht das genauso wie gesagt du brauchst einfach nur
den Sql Text umaendern in
Select Top 10 * from Guestbook where id < " & lastid

Guestbook.php?lastid="&lastid
 
Moment... jetzt pack ich's nicht mehr. Das, was du geschrieben hast, war also ASP?

Also, wenn ich das mit PHP mach, kann ich dann nicht einfach Anzahl Einträge/10 gibt dann vielleicht 1, 2, 3 oder so. Kann ich dann abhängig davon unten die Seitenzahlen anzeigen lassen. Also bei 11 Einträgen 2 Seiten, bei 43 Einträgen 5 Seiten usw.

Sollte doch eigentlich gehen? Ich habs mit Count(id) und dann mit abrunden gemacht. Aber bei mir kommt immer 3 raus unten. Woran liegt das?

Falls ihrs nicht packt, soll ich den Code hier posten?

SilentWarrior
 
Zurück