PDA

Bekijk Volledige Versie : Forumvraag met PHP & MySQL



BlueLagoon
11/06/03, 16:03
Ik ben bezig met een forum ontwikkelen voor een klant in PHP & MySQL. Normaliter zou je hiervoor PHPbb of zo kunnen gebruiken, maar hier moest zooo veel aan worden aangepast dat ik zelf aan het programmeren ben geslagen.

Nu kom ik er even niet helemaal uit met een SQL query voor het sorteren van berichten. Neem bijvoorbeeld dit forum, het bovenste bericht is het bericht met de laatste reactie / bericht, daaronder de 1 na laatste enz. Dus je moet per bericht ook kijken wanneer de laatste reactie is geplaatst om je berichten in de lijst op de juiste manier te kunnen sorteren. En als er geen reacties zijn, moet naar de datum / tijd van het orginele bericht worden gekeken.
Even de ingekort tabellen:

Berichten
- id [INT] (uniek nummer)
- parent_id [INT] (gelijk aan een andere id, indien reactie op...)
- titel [VARCHAR(150)] (de titel van het bericht).
- datum [date]
- tijd [time]

Misschien zou ik beter gebruik kunnen maken van een timestamp ipv een apart datum / tijd veld... maar denk dat het principe van de SQL query / PHP code gelijk zal blijven.

Dus hoe sorteer ik een lijst met berichten op de datum van plaatsing, waarbij ook gekeken wordt naar de laatste reactie van berichten?

Ik gebruik MySQL versie 3.23.44, die ondersteund geloof ik nog geen subqueries?

Indien meer info nodig, hoor ik het graag.

Thnx

Grumpy
11/06/03, 16:08
SELECT [blaat]
FROM [blaat]
ORDER BY "date"

Anders download je even phpBB en bekijk de source.

Trouwens, ik denk dat het veel minder werk is om phpBB te modden dan zelf 1 te gaan bouwen.

We Develop
11/06/03, 16:08
Waarom pluis je phpbb dan niet even uit om te kijken hoe het in elkaar zit?


Zelfde minut gepost als Grumpy

BlueLagoon
11/06/03, 16:17
Origineel geplaatst door Grumpy
SELECT [blaat]
FROM [blaat]
ORDER BY "date"

Anders download je even phpBB en bekijk de source.

Trouwens, ik denk dat het veel minder werk is om phpBB te modden dan zelf 1 te gaan bouwen.

Jammer genoeg is het niet zo simpel :) ... want zo sorteer je ALLE berichten uit de tabel [blaat] op de datum en / of tijd. Maar het zijn niet allemaal "topics", maar in de tabel [blaat] staan ook reacties op "topics".
Dus de titels moeten zowieso gesorteerd worden op de "topic" datum/tijd.

Echter als ik gister en vandaag een topic start. Staat de topic van vandaag bovenaan. Maar als iemand reageert op de topic van gisteren, moet de topic van gisteren weer bovenaan staan.

Het forum(pje) wat ik aan het bouwen ben is trouwens veeeelee malen kleiner en eenvoudiger dan PHPbb, het is niet zo dat ik hem probeer na te maken of zo ;)

Als iemand nog weet hoet ik dit probleem op kan lossen... graag...

BlueLagoon
11/06/03, 16:29
Misschien is het een idee om een extra veld met de datum / tijd van de laatste post aan het orginele bericht toe te voegen, en hem daar op te sorteren?

Dan wijzig ik het veld "laatstepostdatum" gewoon wanneer er een reactie wordt geplaatst. Is echter wel weer een extra databaseactiviteit... dus niet ideaal :)

xserve
11/06/03, 16:43
Goed idee Blue Lagoon, ik denk trouwens dat het minder database activiteit kost dan dat je het op de andere manier zou moeten doen, dan zou hij namelijk meerdere tabellen moeten zoeken.
Nu iets meer activiteit bij het plaatsen van een reactie, anders elke keer dat iemand de hoofdpagina of de forums bekijkt extra activiteit, wat zou de server meer tijd kosten? Ik weet het antwoord wel.

BlueLagoon
11/06/03, 16:53
Je hebt gelijk ik denk dat ik het inderdaad op deze manier op ga lossen, naast dat het dan toch redelijk snel is, is het ook redelijk makkelijk te implementeren (zal nog wel meer problemen tegenkomen, zoals hoe je ziet dat een bericht nieuw is voor de bezoeker :S).

Mjha gewoon de rede dat ik hiervoor kies zijn o.a.:
* Het wordt een zeer simpel forum, dus nieuw is sneller dan modden.
* Wil het makkelijk kunnen koppelen met account op de website.
* Kleiner en dus sneller denk ik... (moet ik het wel goed doen ;))
* Veel makkelijker om even aan te passen als je iets anders wilt.

Mja verder, ik gebruik toch alleen maar Nederlands op deze site, dus taalmodules etc. heb ik niet nodig... ik gooi het allemaal en 1 groot CMS systeem, dus hoef je ook weer niet apart in te loggen om je forum te modden enzo...

Ik zal nog wel wat problemen tegen komen, dan post ik deze wel in dit bericht erbij... bedankt voor jullie antwoorden.