Avatar billede dk-pingvinen Nybegynder
06. marts 2002 - 12:40 Der er 8 kommentarer og
1 løsning

forum..

Jeg er igang med at programmere et forum, men min hjerne kan ikke helt tænke den rigtige vej.

Jeg har lavet så nå man laver et indlæg lægger den det i en mysql på følgende måde.

id        emne          af-bruger
1      dejligt forum    daniel
2      jeg får ny comp  morten
3      hvad er 2+2      peter
4      dejligt forum    olsen
5      hvad er 2+2      hans

Hvor indlæg med ID nummer 5 er det nyeste, og indlæg nummer 4 fungerer som et "svar" til indlæg nummer 1. (og 5 er et svar til nummer 3)

Nu vil jeg lave en side hvor man kan se de indlæg der senest har været aktivitet i. Dvs. at overstående skulle rangeres på følgende måde:

hvad er 2+2
dejligt forum
jeg får nu comp

jeg har jeg prøver med en query:
select * from forum GROUP by 'emne' ORDER by 'ID' desc

der virker fint nok bortset fra af den tager fra toppen og groper derfra. Hvis i forstår hvad jeg mener.

Altså GROUP funktionen starter fra toppen, og gør altså ikke arbejdet rigtigt - hvordan kan jeg opbygge sådan et forum, så det virker.. please help me

på forhånd tak

dk-pingvin
Avatar billede delwin Nybegynder
06. marts 2002 - 12:44 #1
jeg tror nok at jeg også ville have lavet et "parent" felt i databasen...

så alle de spørgsmål der bliver spurgt har parent=0 og alle svarne har parent=spørgsmåls id

så slipper du for de problemer..

du kunne skrive
SELECT id,emne,af-bruger FROM forum WHERE parent=0 på forside

og på en spørgsmåls side kunne du vise alle svarne ved at skrive
SELECT * FROM forum WHERE parent=spørgsmåls id
Avatar billede delwin Nybegynder
06. marts 2002 - 12:46 #2
ps.. jeg ved godt at det ikke er min sag.. men din originale SQL ser således ud..

"select * from forum GROUP by 'emne' ORDER by 'ID' desc"

synes du ikke dette er nemmere at læse..??

"SELECT * FROM forum GROUP BY 'emne' ORDER BY 'ID' DESC"

så alle SQL keywords er med stort og dine felt og tabelnavne er med småt..
Avatar billede dk-pingvinen Nybegynder
06. marts 2002 - 13:15 #3
Delwin forstår ikke hvad du mener! Kan du ikke foreklare lidt mere..
altså hvordan du ville gøre.

Jeg vil have sorteret min liste, så jeg får alle de nyeste "linjer" fra min MySQL øverst, men kunen af hver
Avatar billede delwin Nybegynder
06. marts 2002 - 13:18 #4
ja.. parent feltet. at de spørgsmål er bliver stillet er overpunkter.. dvs.. de skal have parent 0..

så for at få en oversigt henter du dem der har parent 0.. f.eks.
SELECT * FROM forum WHERE parent=0 ORDER BY id DESC

hvis man så klikker på et spørgsmål for at se svar der er kommet, sender man en id med..

så kunne du skrive SELECT * FROM forum WHERE parent=den_id_der_blev_sendt_med ORDER BY id ASC
Avatar billede dk-pingvinen Nybegynder
06. marts 2002 - 13:21 #5
Altså nye tråde oprettes med parent=1
og svar med parent=0 ??

eller hvad mener du

Tror du skal lave et eksempel.
Avatar billede delwin Nybegynder
06. marts 2002 - 14:51 #6
omvendt.. når du laver en ny tråd har den ikke nogen parent.. dvs.. den har parent=0 i databasen.. svar har så en parent der indeholder id'en på den tråd den tilhører..

dvs.. hvis du skal vise alle tråde, kan du hente alle der har parent=0

og hvis du skal vise alle svar til en tråd, kan du hente alle svar der har parent=id'en på den tråd der er valgt..
Avatar billede dk-pingvinen Nybegynder
06. marts 2002 - 20:05 #7
Men hvad hjælper det mig, nå jeg skal lave en der viser de indlæg som sidst er skrevet, og/eller sidst har været svaret til.

Altså opretter du en tråd (helt nyt indlæg) der hedder Logitech
Så! kommer den! øverst

8 minutter efter dit indlæg svare en anden person på et indlæg som er en måned gammelt, og for længst fjernet fra top10 listen, nå han svare, så kommer dette indlæg ØVERST! altså over dit!

Nå nå dit indlæg besvares af en helt tredje, kommer du over det MEGET gamle indlæg

forstår du ?
Avatar billede dk-pingvinen Nybegynder
06. marts 2002 - 21:12 #8
Lukker
Avatar billede delwin Nybegynder
07. marts 2002 - 09:16 #9
nej.. for der skal du jo så køre noget i stil med

SELECT * FROM forum WHERE parent=0 ORDER BY id DESC

det er ORDER BY feltnavn DESC der gør det omvendt..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester