webForumDet fria alternativet

Göra forum? Hjälp!

PHP

29 svar · 1 400 visningar · startad av Kenchu

Medlem sedan apr. 2004113 inlägg
Frågan#1

Tjo!

Har tänkt försökt göra ett litet forum i PHP och databaser. Jag har tänkt mycket på detta, och bara genom att tänka har jag stött på följande problem:

1. Mycket enklet egentligen. Hur gör man så att -nyrad- verligen blir -nyrad- i ett inlägg? De som skriver i forumet kan ju inte behöva skriva <br > varje gång!

2. Hur fungerar det egentligen när man skapar ett nytt inlägg? Eller nej, skit i det. Problemet jag stött på är hur de inlägg som hör ihop med HUVUDINLÄGGET skall hamna på samma sida. Hur fungerar det? Skapas en ny tabell i databasen för varje nytt huvudinlägg, som sedan alla svaren för inlägget hamnar i?

3. Hur gör man sidbyten, så att tex 45 inlägg visas på varje sida?

Tackar för all hjälp och info jag kan få!

Mvh

Medlem sedan juni 20006 031 inlägg
#2

Du kan inte lösa alla problem innan du skriver skriptet. ;)

1. Finns olika funktioner. nl2br(), htmlentities() m.fl beroende på hur man vill ha det.

2. Tråden får ett id, detta sparas även tillsammans med inläggen så man vet vilket inlägg som hör till vilken tråd.

3. Paging. Finns exempel bland phpskripten.

Medlem sedan apr. 2004113 inlägg
#3

Länkar? ^^

ang. 2:

Att varje nytt huvudinlägg får ett ID genom auto_increment kan jag förstå, men svaren? Hur ska svaren veta att de skall ritas upp tillsammans med det ID:et? De kan väl inte ha samma ID, elller? Skulle det inte bli rörigt att ha alla inlägg i en tabell?

------------

Fina bakgrunder förresten. :)

Medlem sedan sep. 2002252 inlägg
#4

1. Är mycket enkelt, du kan helt enkelt kolla igenom alla tecken i det nya inläget och byta ut alla nya rad tecken mot </ br>

2. Du lagrar alla i samma tabell och använder ett fält som heter parent_id eller liknande som länkar till huvud inläget och sen kan du sortera de efterföljande efter datum och tid om du inte vill ha en avancerad struktur med en massa olika grenar.

3. Om du använder sql och inter ecordset så är det Limit kommandot som gäller, använder man recordset så finns det inbyggt stöd för att göra just "paging"

Hoppas att dessa välldigt snabba svar hjälper dig!

Medlem sedan apr. 2004113 inlägg
#5

1. Är mycket enkelt, du kan helt enkelt kolla igenom alla tecken i det nya inläget och byta ut alla nya rad tecken mot </ br>

Jasså? Hur gör man för att kolla igenom alla tecken och hur ser ett "ny rad-tecken" ut? :)

Medlem sedan juni 20006 031 inlägg
#6

Läs om funktionerna i manualen, t.ex nl2br

Medlem sedan juni 20006 031 inlägg
#7

Här har du även Kjells pagingskript

Medlem sedan apr. 2004113 inlägg
#8

Tack så mycket, det mesta är väl löst nu!

Men svaret på frågan 2 förstår jag inte riktigt ännu. Kan ni inte förklara mer ingående? Får alla svarsinlägg samma ID som huvudinlägget eller vad?

Medlem sedan juni 20006 031 inlägg
#9

När någon skapar en ny tråd så sparar du:
id (unikt id för tråden)
namn
text

När någon svarar så sparar du:
id (unikt id för posten)
namn
text
id (trådens id)

iom att du sparar trådens id så vet du vilken tråd som posten tillhör.

Medlem sedan apr. 2004113 inlägg
#10

ah, två id! >_<

Tackar! Tack så mycket grabbar!

Medlem sedan sep. 2002252 inlägg
#11

Kenchu skrev:

Jasså? Hur gör man för att kolla igenom alla tecken och hur ser ett "ny rad-tecken" ut? :)

Vet inte hur det ser ut i php men det har ju kommit fram bättre alternativ så vi kör med dom! ;)

Medlem sedan apr. 2004113 inlägg
#12

Är kjells pagingscript tillåtet att bli lånat?

Medlem sedan juni 20006 031 inlägg
#13

Kenchu skrev:

Är kjells pagingscript tillåtet att bli lånat?

Ja. Har själv använt mig av det.

Medlem sedan apr. 2004113 inlägg
#14

Har stött på ett nytt problem:

Hur gör man så att det auto_increment-värde som skickas till databasen för ID även skickas till en annan kolumn samtidigt?

Kanske har jag tänkt helt fel. Det egentliga problemet är hur jag skall kunna spara huvudinläggets ID.

När man först skapar en tråd sparas ETT ID med auto_increment. Men sen då, när alla svar skall ritas ut? Jag kan ju inte rita ut efter ID, då det är auto_increment, alltså måste jag rita ut efter ännu ett ID, det ID som huvudinälgget hade, vilket betyder att jag måste sätta in TVÅ ID för huvudinlägget: självaste ID och sedan ID för huvudinlägget, som sedan svaren skall använda. Nu är problemet hur jag skall lyckas spara dessa två id. Försökte använda mig av mysql_insert_id(), men det gick inge bra. :( Hjäälp!

		mysql_query("INSERT INTO prec_forum(id,where_id,displayname,subject,text,date) VALUES(NULL,mysql_insert_id(),'{$_REQUEST["displayname"]}','{$_REQUEST["subject"]}','{$_REQUEST["text"]}',NOW())");
Medlem sedan juni 20006 031 inlägg
#15

När du klickar på länken för att svara i forumet skickar du med trådens id i länken.
Sen när du lägger in svaret så har du ju trådens id redan.

mysql_query("INSERT INTO prec_forum(where_id,displayname,subject,text,date) VALUES('{$_GET['id']}','{$_REQUEST["displayname"]}','{$_REQUEST["subject"]}','{$_REQUEST["text"]}',NOW())");

kolumnen med autoincrement behöver du inte ha med i din sql sats då den automatiskt förs in.

Medlem sedan apr. 2004113 inlägg
#16

Jo, men det är inte det som är problemet. :/ Huga, hur ska jag förklara?

Okay, om jag säger så här då:

När jag skapar huvudinlägget, hur ger jag då where_id samma värde som id?

Medlem sedan juni 20006 031 inlägg
#17

ok, nu fattar jag.
Du ska ju egentligen inte behöva tilldela where_id något värde då.
Det har du ju ingen nytta av.

Medlem sedan apr. 2004113 inlägg
#18

Jo, hur annars skall alla svarsinlägg kunna hamna tillsammans med huvudinlägget, om de inte har något gemensamt? Och om man inte tilldelar where_id något värde för huvudinlägget kommer det att bli 0. Alla huvudinlägg kan inte ha where_id = 0.

Kanske är den här lösningen inte så bra. Har ni andra gjort på något bättre sätt?

Medlem sedan juni 20006 031 inlägg
#19

Om du hämtar en tråd med t.ex länken:
forumdisplay.php?thread=1
Där 1 är id, sen hämtar du tråden med id 1 och trådar med where_id är 1

Medlem sedan apr. 2004113 inlägg
#20

precis, och då måste ju huvudinlägget även det ha where_id 1, eller hur? ;) Hur får jag in det samtidigt som ID när jag skapar huvudinlägget?

Eller är huvudinlägg och inlägg i skilda tabeller?

276 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
141 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
140 ms — ändringar (db)