Toon posts:

[mysql] sorteer probleempje

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit met het volgende probleem. Ik heb een gastenboek/forum achtig ding gemaakt met php (en mysql als DB). De tabel ziet er ongeveer zo uit (hierbij zijn een hoop velden weggelaten, maar alleen deze zijn van belang)

IDTYPEPOST_IDPOST_UNIXSUBJECT
1post1100bericht1
2reply1101bericht1
3post3102bericht2
4reply1103bericht1
5reply3104bericht2


Als het type POST is dan is het het eerste bericht van een topic. Is het een REPLY dan is het uiteraard en reply in een topic (waarbij POST_ID aangeeft bij welke topic de reply hoort). POST_UNIX is de tijd dat het bericht is gepost in Unix tijd (heb voor het voorbeeld even rare waardes gebruikt, maar dat is wat verzichtelijker dan zo'n enorm getal).

Maar goed, ik wil dus een overzicht krijgen van alle topics, dan doe je dus:

code:
1
SELECT subject FROM tabel ORDER BY post_unix DESC


Dat werkt leuk, maar de volgorde klopt dan uiteraard niet. Ik wil graag alle topics ophalen, maar deze moeten geordend worden op de tijd dat de laatste reply was. Nu wordt alles geordend op de tijd dat de topic is aangemaakt.
Hoe krijg ik dit voor elkaar :X Ik heb al diverse dingen geprobeerd.
Zo kan je:
code:
1
SELECT DISTINCT post_id FROM tabel

doen, maar dan neemt hij weer de eerste reply ipv de laatste.
Heb ook dingen met subquerys geprobeerd maar ik word er niet wijzer van.

Ik weet dat je eigenlijk geen code requests mag doen, maar kan iemand mij opweg helpen met de query. :? Het begint me na zoveel dagen klooien toch wel te irriteren 8)7

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 07-05 22:49

curry684

left part of the evil twins

D'r klopt geen bal van je datamodel, je hebt echt een losse tabel Topic en Message nodig.

Afgezien daarvan is de snelle oplossing voor je probleem gewoon deze SQL:
SQL:
1
2
3
select * from tabel
where post_unix in (select max(post_unix) from tabel group by post_id)
order by post_unix desc;

Maar dan heb je dus inderdaad een subquery nodig die erg hard op je performance gaat hakken.

Fix eerst je datamodel, daarna de queries :)

Professionele website nodig?


Verwijderd

Topicstarter
Hmm, misschien inderdaad alles maar overhoop gooien.
In ieder geval bedankt voor de query, ik ga er leuk mee experimenteren enzo :P

Bedankt in ieder geval alvast :)

  • Dekaasboer
  • Registratie: Augustus 2003
  • Laatst online: 19:23
SELECT disinct type, *
FROM tabel
ORDER BY post_unix ASC

Ik snap niet helemaal wat je wilt, maar dit lijkt er volgens mij op.

[ Voor 6% gewijzigd door Dekaasboer op 20-04-2005 15:01 ]

http://axrotterdam.blogspot.nl


Verwijderd

Voor een goed voorbeeld van een forum datamodel, download op http://www.webwizguide.info/web_wiz_forums/default.asp het WebWizForum.

Hangt gewoon een access db'tje onder, en dat kan je goed als referentie gebruiken :)

Verwijderd

Topicstarter
@Dekaasboer
Dat doet in ieder geval NIET wat ik wil ;)

@Keesinho
Goed idee. Ik ga me er eens in verdiepen. :)

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 07-05 22:49

curry684

left part of the evil twins

Geen idee wat het WebWiz forum is, maar als je je in een goed forum wil verdiepen is de gratis versie van React (waar GoT zelf oftewel dit forum op draait) te downloaden op www.myreact.nl. Grote voordeel van (My)React is dat het compleet is geoptimaliseerd op performance, performance en performance in tegenstelling tot reguliere freeware meuk als phpBB en aanverwanten.

Professionele website nodig?


Verwijderd

Topicstarter
Bedankt voor de reacties btw :)

MyReact lijkt me opzich iets handiger dan WebWiz, ik zie namelijk nu dat WebWiz in asp is geschreven (met een MS Access DB). En aangezien ik vrijwel alleen Linux gebruik is dat niet ideaal ;) .

Verwijderd

curry684 schreef op woensdag 20 april 2005 @ 15:15:
Geen idee wat het WebWiz forum is, maar als je je in een goed forum wil verdiepen is de gratis versie van React (waar GoT zelf oftewel dit forum op draait) te downloaden op www.myreact.nl. Grote voordeel van (My)React is dat het compleet is geoptimaliseerd op performance, performance en performance in tegenstelling tot reguliere freeware meuk als phpBB en aanverwanten.
:9 impliciet geef je aan dat WebWiz niet goed zou zijn. Ik refereer aan WebWiz omdat er een eenvoudig model achter hangt, niet zozeer omdat het ieder toppiejoppie feature heeft. Ik ken React niet, dus misschien is't wel net zo simpel, maar hoe dan ook WebWiz is gewoon lekker laagdrempelig ;)

Advies dus: Bekijk beiden B)

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 07-05 22:49

curry684

left part of the evil twins

Verwijderd schreef op woensdag 20 april 2005 @ 18:40:
[...]

:9 impliciet geef je aan dat WebWiz niet goed zou zijn.
Nee ik zeg dat ik WebWiz niet ken en dat ik van React zeker weet dat het topkwaliteit is, ik werk er dagelijks uitvoerig mee aan zowel voor- als achterkant ;)

Professionele website nodig?


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
curry684 schreef op woensdag 20 april 2005 @ 15:15:
Geen idee wat het WebWiz forum is, maar als je je in een goed forum wil verdiepen is de gratis versie van React (waar GoT zelf oftewel dit forum op draait) te downloaden op www.myreact.nl. Grote voordeel van (My)React is dat het compleet is geoptimaliseerd op performance, performance en performance in tegenstelling tot reguliere freeware meuk als phpBB en aanverwanten.
Nadeel is dat de installatie minder eenvoudig is, de source niet beschikbaar is en het nogal 'overweldigend' over kan komen. Als je voor FC Bal op 't dak 3 een forumpje nodig hebt voldoet iets als WebWhizz of phpBB prima natuurlijk. De datastructuur is erg eenvoudig, en de broncode is beschikbaar.

Oops! Google Chrome could not find www.rijks%20museum.nl

Pagina: 1