Toon posts:

[SQL] topics sorteren op laatste post *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo allemaal,

Had deze post ookal op andere forums gezet...


Ben bezig met een forum en heb de volgende tabellen:

Topics
------------------
TopicId
ForumId
StartDateTime
Replies
Sticky
Locked

Threads
------------------
PostId
TopicId
Subject
Message
Author
PostDateTime

Als je op een forum komt (net zoals hier) dat krijgt de pagina een forumid binnen en haald hij alle topics uit de database voor dat forum

Nu is het de bedoeling dat hij die topics zo orderd: Topics.Sticky, Topics.StartDateTime, Threads.PostDateTime

Dus dat de topics waarin nieuwe replies gepost zijn boven aan komen onder de stickys

Maar hoe doe ik dat?

Ik gebruik nu deze query
code:
1
"SELECT TopicId, Replies, StartDateTime, Locked, Sticky FROM adfTopics WHERE ForumId = " & ForumId & " ORDER BY Sticky, StartDateTime DESC"



En dan met een 2e record de rest
code:
1
"SELECT PostId, Subject, Author, PostDateTime FROM adfThreads WHERE TopicId = " & Rs("TopicId") & " ORDER BY PostDateTime"


Dat werkt allemaal goed alleen op die manier orderd hij niet op Threads.PostDateTime

Hoop dat iemand weet hoe dit moet :)

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 09:43
Ja, je moet ook wel de tabelnaam vermelden als je ergens op wilt orderen. En dan moet er nog een link zijn in de query waardoor de database weet waar hij op moet letten. Dat kan je doen met een JOIN.

Overigens is je datamodel in dat geval niet optimaal, omdat het beter is in de eerste tabel een veld te maken met de tijd van de laatste post, en deze bij elk nieuw bericht te updaten. Dat is namelijk veel efficiënter.

Hoe je het nu hebt is het overigens wel mogelijk en ik kan je het antwoord wel voorkauwen, dan weet je wel hoe het moet maar snap je het nog niet.

Daarom kun je dus beter je datamodel aanpassen en het gebruik van JOINS in dit geval vermijden en zo een beter en sneller resultaat verkrijgen.

Succes!

  • man-o-script
  • Registratie: Juni 2001
  • Laatst online: 27-05 19:00
Met een Join alles in 1 querie binnenhalen en dan daarin sorteren?

//edit: ddc was me voor :)

[ Voor 58% gewijzigd door man-o-script op 27-01-2004 03:00 . Reden: ddc was me voor :) ]

//


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 10:51

.oisyn

Moderator Devschuur®

Demotivational Speaker

Overigens is je tabelnaam voor je posts, threads, niet echt handig. In feite is een thread namelijk hetzelfde als een topic :). Noem 'm gewoon posts of replies oid

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Topicstarter
bedankt voor jullie replies!

vindt dcc's oplossing wel mooi, denk dat ik dat is ga proberen morgen :)

[ Voor 5% gewijzigd door Verwijderd op 27-01-2004 03:29 ]