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?
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?
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!
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())");
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.
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?