(FORUM) Ausgabe begrenzen
Dave
- php
Hi,
ich möchte, dass bei meinem Forum die Antworten auf ein Posting nur z.B. bis 10 ausgegeben werden, dann kommt ein link, der, wenn mehr beiträge als angezeigt vorhanden sind, einen "weiter"-Link setzt, und wenn der Startwert (z.B. 20) Größer ist als 0, noch ein "zurück"-link steht. Das Forum funktioniert ungefähr so (Ja CK, ist immer noch dasselbe *g*):
Auf der Startseite steht ein link auf alle Threads - z.B. "Testthread". Darunter stehen _keine_ links auf die Antworten, wie im selfforum.
Wenn man den Titel anklickt, erscheint ein Eingegebener Startbeitrag (in einer Tabelle), und darunter werden die Antworten ausgegeben, mit je einem link darunter zum Antworten.
Die Antworten werden in einer MySQL-Tabelle mit jeweils dem Namen des Threads gespeichert.
Zusatzfrage 1: wie kann ich eine Antwort unmittelbar nach dem Beitrag einfügen, auf den Sie sich bezieht? Beispiel:
Themenbeitrag
Antwort A
Neueste Antwort auf A
Ältere Antwort auf A
Antwort auf Anwort auf A
Antwort B
Antwort C
Zusatzfrage 2:
Reload des "eintragen"-Scripts verhindern?
Danke!
To CK: Wenn du etwas am Konzept zu kritisieren hast, tu es! (Das Archiv November 02 ist hin und ich finde den alten Thread nicht...)
Hoffe jemand kann mir helfen.
Vielen Dank und schöne Grüsse,
Dave
Hi Dave
ich möchte, dass bei meinem Forum die Antworten auf ein Posting nur z.B. bis 10 ausgegeben werden, dann kommt ein link, der, wenn mehr beiträge als angezeigt vorhanden sind, einen "weiter"-Link setzt, und wenn der Startwert (z.B. 20) Größer ist als 0, noch ein "zurück"-link steht
such mal im Archiv, ich habe diese Frage schon mindesten 3x beantwortet, z.Teil auch mit Code
da zB.
http://forum.de.selfhtml.org/archiv/2002/9/24291/#m133900
ciao
romy
Servus romy,
siehste, jetzt hab ich wieder was gelernt: die archiv-suche bringt _doch_ was (c: (Hab bis jetzt nie was anständiges gefunden)
Ich lese es mir jetzt mal durch...
Danke schonmal
Dave
Hallo!
ich möchte, dass bei meinem Forum die Antworten auf ein Posting nur z.B. bis 10 ausgegeben werden,
das macht man mit LIMIT im SELECT-Statement: http://www.mysql.com/documentation/mysql/bychapter/manual_Reference.html#IDX1355
Zusatzfrage 1: wie kann ich eine Antwort unmittelbar nach dem Beitrag einfügen, auf den Sie sich bezieht?
lies mal http://aktuell.de.selfhtml.org/artikel/phpasp/php-forum/index.htm
To CK: Wenn du etwas am Konzept zu kritisieren hast, tu es! (Das Archiv November 02 ist hin und ich finde den alten Thread nicht...)
Hoffe jemand kann mir helfen.
Foren zu programmieren schint wohl in Mode zu sein, hab mich irgendwann auch schonmal dran versucht, aber das das nicht ganz so Trivial ist sieht man sehr schön am Selfforum und was dahintersteckt. Aber ein kleines Forum kann man recht einfach mit MySQL/PHP erstellen, siehe obigen Artikel. Und da das Thema so schon bestimmt 50 mal(ins Blaue geschätzt ;-) ) hier diskutiert wurde, solltest Du auch mal die Forumssuche nutzen, also nach Worten wie "eigenes Forum", "Forum PHP MySQL"...
Viele Grüße
Andreas
Also Danke für eure Tipps, du passt aber was noch nicht (Ja, ich habe die Suche benutzt!):
Es werden immer nur die Ersten Beiträge angezeigt, es sollen aber, wenn ich auf weiter (also die nächsten 10) gehe, auch wirklich die nächsten 10 Beiträge angezeigt werden. (Startwert = 10...)
Hilft mir da vielleicht, dass ich bei jedem Beitrag eine id einsetze, die ich immer erhöhe um 1 (auto_increment)?
Aber dann könnte ich das ja nicht mehr korrekt untereinander sortieren, wenn z.B. eine Antwort auf eine Antwort die id 20 hat, weil sie eben neuer ist als die übergeordnete, würde ja eben eine Antwort ohne Bezug angezeigt bei Startwert = 20... verstanden? wenn nicht ist egal...
Vielen Dank und Schöne Grüsse,
Dave
also, bei dem link den ich dir aus dem archiv gesucht habe, passt es
limit und offset sind dazu wichtig
offset musst Du immer mit übergeben, wenn man auf den link mit die nächsten 10 klickt
in dem select-statement gibst du dann limit und offset mit an und siehe da, es geht
ciao
So romy!
Jetzt passt schon mal die Anzahl. Aber er gibt immer noch ab Anfang aus. Auf was muss ich denn den geheimnisvollen Wert $data (in deinem script) setzen? Bei mir seiht es jetzt (Bei 12 Beiträgen z.B.) so aus:
Eintrag 1
Eintrag 2
Eintrag 3
Eintrag 4
Eintrag 5
Eintrag 6
Eintrag 7
Eintrag 8
Eintrag 9
Eintrag 10
und nach dem klick auf "weiter"...
Eintrag 1
Eintrag 2
und nicht
Eintrag 11
Eintrag 12
*diehaarerauf*
Dave
So Dave,
<?php
$limit=10; //wieviele datensätze auf einmal ausgeben
// dieser select ist nur zum zählen!
$numresults=mysql_query("select * from TABLE where Bedingung order by usw.");
$numrows=mysql_num_rows($numresults);
//gucken ob offset schon gesetzt ist, sonst Null
if (empty($offset)) {
$offset=1;
}
//hole die Datensätze
//hier nicht offset und limit vergessen
$result=mysql_query("select id,name,phone ".
"from TABLE where YOUR CONDITIONAL HERE ".
"order by WHATEVER limit $offset,$limit");
// zeige die datensätze an
//in $data steht das datenarray drin, welches Deiner Abrage genügt
while ($data=mysql_fetch_array($result)) {
// include code to display results as you see fit
}
//links zu den anderen ergebnissen
if ($offset==1) { // bypass PREV link if offset is 0
$prevoffset=$offset-10;
print "<a href="$PHP_SELF?offset=$prevoffset">PREV</a> \n";
}
//wieviele seiten brauchen wir
$pages=intval($numrows/$limit);
if ($numrows%$limit) {
// has remainder so add one page
$pages++;
}
for ($i=1;$i<=$pages;$i++) { // loop thru
$newoffset=$limit*($i-1);
print "<a href="$PHP_SELF?offset=$newoffset">$i</a> \n";
}
//gucken ob letzte seite erreicht ist
if (!(($offset/$limit)==$pages) && $pages!=1) {
// not last page so give NEXT link
$newoffset=$offset+$limit;
print "<a href="$PHP_SELF?offset=$newoffset">NEXT</a><p>\n";
}
Ich kann Dein Problem nicht erkennen!?
,lass Dir mal bitte offset ausgeben irgendwo und klicke dann auf next usw. , wenn es sich nicht verändert, scheinst Du irgendwo ein Problem zu haben
hast Du das Ganze in einer Funktion?
siehst du eigentlich die Navigation? a la
prev 123 next?
ciao
romy
Gott, ist mir das jetzt peinlich... tut mir leid dass ich jetzt immer noch keine Ruhe gebe: Jetzt bringt er mir das eigentlich wie ich es wünsche, nur, dass er ausschliesslich Beiträge mit einer geraden id (2, 4, 6, 8, 10, 12 usw.) anzeigt. Häh? Ich versteh die Welt nicht mehr. (Hilfe!)
Schöne Grüsse,
Dave
Hi Dave,
Jetzt bringt er mir das eigentlich wie ich es wünsche, nur, dass er ausschliesslich Beiträge mit einer geraden id (2, 4, 6, 8, 10, 12 usw.) anzeigt. Häh? Ich versteh die Welt nicht mehr. (Hilfe!)
Ich auch nicht ;)
Ich vermute aber trotzdem dass dies an Deiner selectabfrage hängt!? willst DU die mal posten!? oder am besten gleich das Ganze Stück. Es fällt mir dann leichter was zu sagen, als bei Ferndiagnose! ;)
ciao
romy
Ich vermute aber trotzdem dass dies an Deiner selectabfrage hängt!? willst DU die mal posten!? oder am besten gleich das Ganze Stück. Es fällt mir dann leichter was zu sagen, als bei Ferndiagnose! ;)
Also heute klappts nimmer, bin den ganzen tag unterwegs gleich. Aber morgen (also mittwoch) habe ich zeit, und dann maile ich dir mal den Quelltext. Danke für deine Freundliche Unterstützung!
Schöne Grüsse,
Dave
Hi,
Hi Dave,
ich möchte, dass bei meinem Forum die Antworten auf ein Posting nur z.B. bis 10 ausgegeben werden, dann kommt ein link, der, wenn mehr beiträge als angezeigt vorhanden sind, einen "weiter"-Link setzt, und wenn der Startwert (z.B. 20) Größer ist als 0, noch ein "zurück"-link steht.
1. zeig' doch mal Dein Forum - dann kann man mehr sagen.
2. Wie Andreas Korthaus schon sagte, ist ein Forum nicht ganz einfach. Ich bin auch gerade da dran und freue mich, nicht der einzige zu sein.
Dein Problem habe ich in meinem Forum gelöst. Sieh's Dir am besten mal an:
http://forum.andeas-lindig.de/gesamt.php
Wenn das Deinen Vorstellungen entspricht, kann ich da mehr zu sagen.
Ich stelle jetzt die Anzahl der zu zeigenden Beiträge mal auf 5, dann hast Du mehr zu klicken - es sind nämlich im Moment nur gut 20 Beträge drin.
Gruß, Andreas
Hi Andreas,
Deines ist sehr schön, ich habe aber mehr lust auf eine eigene kreation... will mal beruflich was in der richtung webdesign machen, und da will ich mir jetzt schonmal gute referenzen zulegen *g*.
Damit du aber trotzdem dein wissen verbreiten kannst *g*:
Das mit den Zitaten (also mit >) finde ich gut gelöst. Wenn.. du mir... vielleicht..... na? :-)
Schöne Grüsse,
Dave