Antworten im Forum ohne Re:
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
antwort
ausgabe
auszug
bedingung
beginnen
beitrag
betreff
bild
daten
datensatz
entscheidenen hinweis
gewaltigen nachteil
id
kleine anmerkung
normaler forumsbeitrag
post
restlichen angaben
tabelle
wenigsten
zeile
-
Hallo!
Ich habe ein ganz einfaches Forum mit zu Hilfenahme eines Buches programmiert. Allerdings hat dieses Forum einen gewaltigen Nachteil (was in diesem Buch auch als solches Bezeichnet wird). Wenn man auf einen Beitrag antwortet, muss dieses mit einem Re: beginnen und darf nicht in einen anderen Text umgewandelt werden. Nun m?chte ich den Usern jedoch erlauben, dass sie die Betreffzeile sehr wohl um?ndern d?rfen. Doch wie?
Was passiert jetzt, wenn der Betreff umge?ndert wird? Ganz einfach, dann wird es also ganz normaler Forumsbeitrag angesehen und eventuelle Antworten, die es vorher zu dem Beitrag gab, verschwinden spurlos aus dem Forum (sind nur noch in der Datenbank vorhanden!).
Ich meine, klar, ich k?nnte dies in den Forumsregeln notieren. Aber wer liest sich heutzutage so etwas ganz genau durch, bevor er postet? Richtig, die wenigstens. Klar, schade, aber ?ndern kann frau es auch nicht.
Okay, genug getratscht, ich hoffe, mir kann jemand einen entscheidenen HInweis geben. Und als kleine Anmerkung am Rande: Ich fange erst an mit PHP, hab also noch nicht so viel gemacht und ... *h?stel* ... ich kann nicht wirklich gut Englisch. Solltet ihr also der Meinung sein, mir einen Link zukommen zu lassen, in dem das erkl?rt wird, dann bitte, bitte auf deutsch ... w?re echt lieb.
Bye bye
CAM-City -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du kannst do so machen:
<input type="text" name="betreff">
und dann beim speichern
$betreff2 = "RE:".$_POST['betreff'];
und schon klappt es.. -
Aber ich m?chte es doch ohne das RE: haben. Und das Forum hat eine Abfrage drin, die auf dieses RE: pf?ft. Nur wenn dies true ist, wird es als Antwort angezeigt. Doch das m?chte ich ?ndern, dass man eben auch ohne RE: eine Antwort einf?gen kann ... eben mit einem anderen Betreff.
-
Poste doch einfach mal den Code. Ich vermute, dass da irgendwo eine Bedingung wie
if (eregi("RE:",$_POST['betreff']))
steht. -
Hier mal ein Auszug davon:
$antw=strstr($zeile[6],"Re:"); if($antw==false) { ausgabe($zeile); }
function ausgabe($datensatz) { $antw=strstr($datensatz[6],"Re:"); if($antw==false) { print("<font size=-1> <img src='beitrag.gif'> "); } else { print(" "); print(" <img src='antwort.gif'> "); } }
-
Soweit ich das verstanden habe wird da die Zeichenkette "Re: " durch ein Bild erstetzt, ansonsten wird das Bild "beitrag.gif" angezeigt. Willst du, dass das Bild jedesmal da steht, wenn eine Antwort gegeben wird oder dass es garnicht auftaucht?
-
Bitte was? Nein, nein, nein, das RE: wird doch nicht von einem Bild ersetzt, das Bild ist vor dem RE: ...
-
Was ist denn das f?r ein Forum?
Eines auf Datenbankbasis?
Schreibe es am besten so:
Jeder Post beinhaltet eine ThreadID, d.h. eine ID, mit der er eindeutig einem bestimmten Thread zugeordnet werden kann. Dann gibts du innerhalb des Threads einfach alle Posts aus, die diese bestimmte ThreadID haben.
Die restlichen Angaben kannst Du angeben wie Du willst. Du kannst alles zu dem Post schreiben, nur die ThreadID muss stimmen. -
Ja, es basiert auf einer Datenbank ... ich habe in dieser zwei IDs ... eine beitrags_id und eine bezugs_id ... Die bezugs_id ?ndert sich nur dann, wenn es eine Antwort auf den Thread gibt. Sprich sie bekommt die gleiche Zahl wie die beitrags_id der Antwort.
-
Das ist nicht n?tig.
Du erstellst 2 Tabellen.
eine f?r die Threads und eine f?r die Posts.
In die f?r die Threads schreibst Du 'ID' und 'Titel', wobei ID der Prim?rschl?ssel ist, der immer um 1 erh?ht wird.
Ind ie Tabelle f?r die Posts schreibst Du ebenfalls eine ID, den Text und die ThreadID, bzw -name.
Jetzt kannst Du eine Thread?bersicht erstellen, indem Du alle Daten aus der Thread-Tabelle abrufst und anzeigst. Wenn man dann auf den Thread-Link klickt, wird die ThreadID per URL ?bertragen und dann werden alle Daten aus der Post-Tabelle abgefragt, die als ThreadID die per URL ?bertragene ID haben.
Um die Anzahl der Posts per Thread zu erhalten, kannst Du einfach das Ergebnis von mysql_num_rows($querryresult) zur?ck geben.
Um den letzten Post eines Thread auszulesen kannst Du an das Ende der Querry noch "ORDER BY ID DESC LIMIT 1 1" anh?ngen, dann werden die Daten nach ID absteigend geordnet und nur der erste Wert ausgelesen, das ist in diesem Fall der letzte zu diesem Thread geschriebene Post.
Ich hoffe, das war verst?ndlich erkl?rt ;O) -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage