Ik ben een forum aan het maken. En nu laat ik de threads op de volgende manier zien:


$sql = "SELECT * FROM FORUMSTHREADS WHERE FORUMID='$forumid' ORDER BY TIME DESC";


Nu wil ik dat 'sticky' threads boven aan worden laten gezien. Een thread is sticky als de value op 1 staat.

Dus nu probeer ik dat met dit:


$sql = "SELECT * FROM FORUMSTHREADS WHERE FORUMID='$forumid' ORDER BY TIME, STICKY DESC";


Alleen werkt dit niet echt helemaal. Wat het eigenlijk doet is ORDER BY TIME ASC en met sticky doet hij helemaal niets. Wat doe ik fout?
Dan moet je het ook omdraaien. Eerst "sticky", en dan pas op tijd.
Ook wil je waarschijnlijk nog steeds de laatste threads eerst tonen, dus voor TIME (is dat geen gereserveerd woord?) zul je ook opnieuw DESC moeten zetten, ofwel ORDER BY STICKY DESC, TIME DESC.

Als je geen richting aangeeft bij een ORDER BY clause (ASC/DESC) wordt data altijd standaard ASC(ending) opgehaald.
Thomas van den Heuvel op 10/03/2018 16:09:20

is dat geen gereserveerd woord?


Jawel en vandaar kwamen ook problemen., Daar lag ook een probleem. Dit gaf natuurlijk vreemde resultaten.
Nu heb ik het op weten te lossen met de volgende query met dank aan jullie:

SELECT * FROM FORUMSTHREADS WHERE FORUMID='$forumid' ORDER BY STICKY DESC, DATETIME DESC


Nu heb ik nog een vraag. De meeste forums gebruiken code en qoute tags. Maar hoe stel ik zo een soort bb code in? Ik vind niet echt duidelijke berichten hierover op het internet. Wordt dit met str_replace gedaan?
Een methode die volgens mij vaak wordt gebruikt zijn reguliere expressies, maar nog beter zou een soort van parser zijn die ook geneste tags (zoals quotes) goed kan verwerken.

Het hangt natuurlijk ook een beetje af voor welk publiek je een forum aan het maken bent. En hierbij komen nog een heleboel andere dingen kijken zoals privileges en correcte weergave van exotische tekens enzo *kuch*.

EDIT: natuurlijk zijn er ook andere formaten / oplossingen denkbaar, zoals bijvoorbeeld Markdown ofzo. Of een WYSIWYG-editor met beperkte HTML-mogelijkheden, maar dat hangt dus nogmaals af van je publiek en waar het forum voor dient.

EDIT: en inderdaad, dit is in principe een ander onderwerp, en daarom zou het ook beter zijn om hier een nieuw draadje voor te maken.
Dat is het werk van een UBB-parser, maar dit staat los van 'sticky thread'.

Binnen forums zijn UBB-codes vrij gebruikelijk. Markdown wordt minder vaker gebruikt.

Maar ook zou een nieuwe thread hierover aanmaken.
ca. 11 jaar oud - is die code nog steeds up-to-date? En wordt deze nog onderhouden? Het eerste wat ik meestal lees bij dit soort dingen zijn de comments, daaruit bleek dat er bepaalde dingen nog niet helemaal lekker liepen, is dat reeds verholpen? Het ziet er best ok uit, op een gegeven moment heb ik ook geprobeerd om zoiets te schrijven, grappig dat mijn laatste versie heel veel weg had van die code, maar ik was er op een gegeven moment weer mee gekapt haha. Maar wel qua stappen in grote lijnen hetzelfde.

- bad gateway, whee~

Reageren