Scoutnet vzw

We connect scouts!
Het is momenteel 27 Apr 2024 12:50

Alle tijden zijn UTC + 1 uur




Plaats een nieuw onderwerp Reageren op dit onderwerp  [ 6 berichten ] 
Auteur Bericht
BerichtGeplaatst: 19 Dec 2004 22:21 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 22 Jan 2004 0:00
Berichten: 773
Op ons forum is er een forum "Nieuws". De tekst van die topics worden ook getoond op de voorpagina. Daarvoor gebruik ik volgende query:
Code:
SELECT phpbb_topics.topic_time, phpbb_topics.topic_title, phpbb_posts_text.post_text, phpbb_users.username, phpbb_topics.topic_id, phpbb_posts_text.bbcode_uid, phpbb_topics.topic_replies FROM phpbb_topics, phpbb_posts_text, phpbb_users WHERE phpbb_topics.forum_id=$forumid AND phpbb_topics.topic_first_post_id = phpbb_posts_text.post_id AND phpbb_topics.topic_poster = phpbb_users.user_id ORDER BY phpbb_topics.topic_id DESC LIMIT $van, $max


Die haalt dus alle topics + tekst op en sorteert dalend volgens het topic_id. Daardoor komen de jongste topics dus van boven.

Maar nu wil ik dat de topics die het laatst zijn aangepast vanboven komen. Er moet dus gesorteerd worden op datum van aanpassing (phpbb_posts.post_edit_time). Iemand die daarvoor een querietje kan opstellen?


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 21 Dec 2004 13:01 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 31 Jul 2002 23:00
Berichten: 236
Uit de data vermoed ik dat phpbb_posts.post_edit_time niet het juiste veld is op op te sorteren om te bereike wat je wil.

probeer eerder eens topic_last_post_id
dus hetzelfde maar vanonder
Code:
ORDER BY phpbb_topics.topic_last_post_id DESC LIMIT $van, $max


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 21 Dec 2004 13:44 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 22 Jan 2004 0:00
Berichten: 773
Hmm, nee dat is het topic_id van de laatste reply op dit onderwerp.
(getuige daarvan de hoofdingen in phpBB:
Onderwerpen Antwoorden Auteur Bekeken Laatste Bericht )
Ik wil sorteren op datum van laatste aanpassing phpbb_posts.post_edit_time. Het grootste probleem daarmee is, is dat dat meestal NULL is. Dan zou je naar phpbb_posts.post_time moeten kijken. 'k Weet niet hoe je zo'n "terugval" mechanisme zou kunnen maken in mysql.


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 21 Dec 2004 20:20 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 22 Jan 2004 0:00
Berichten: 773
Hmm, was simpeler dan ik dacht :)

Code:
SELECT phpbb_topics.topic_time, phpbb_topics.topic_title, phpbb_posts_text.post_text, phpbb_users.username, phpbb_topics.topic_id, phpbb_posts_text.bbcode_uid, phpbb_topics.topic_replies FROM phpbb_topics, phpbb_posts, phpbb_posts_text, phpbb_users WHERE phpbb_topics.forum_id=$forumid AND phpbb_topics.topic_first_post_id = phpbb_posts_text.post_id AND phpbb_topics.topic_poster = phpbb_users.user_id AND phpbb_topics.topic_first_post_id = phpbb_posts.post_id ORDER BY phpbb_posts.post_edit_time DESC, phpbb_posts.post_time ASC LIMIT $van, $max


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 23 Dec 2004 12:35 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 31 Jul 2002 23:00
Berichten: 236
Citaat:
'k Weet niet hoe je zo'n "terugval" mechanisme zou kunnen maken in mysql.


Misschien kan je daarvoor coalesce gebruiken, deze functie retourneert het eerste not null element van een lijst velden.

Code:
ORDER BY Coalesce( phpbb_posts.post_edit_time, phpbb_posts.post_time ) DESC


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 23 Dec 2004 15:04 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 22 Jan 2004 0:00
Berichten: 773
Hmm, interessant, temeer daar mijn vorige oplossing (zie hierboven) toch niet zo heel goed werkte. Maar ik zit ondertussen met een ander probleem. Als een admin een topic wijzigt (ook al is het zijn eigen topic) dan wordt de edit time niet aangepast :S Waardoor sorteren op datum van aanpassing nogal nutteloos wordt aangezien alleen admins en moderators topics mogen posten/wijzigen in het "Nieuws" forum...


Omhoog
 Profiel  
 
Berichten weergeven van de afgelopen:  Sorteer op  
Plaats een nieuw onderwerp Reageren op dit onderwerp  [ 6 berichten ] 

Alle tijden zijn UTC + 1 uur


Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 47 gasten


U mag geen nieuwe onderwerpen plaatsen in dit forum
U mag geen reacties plaatsen op onderwerpen in dit forum
U mag uw berichten niet wijzigen in dit forum
U mag uw berichten niet verwijderen in dit forum
U mag geen bijlagen plaatsen in dit forum

Zoeken naar:
Ga naar:  
Powered by phpBB® Forum Software © phpBB Group
Vertaald door phpBBservice.nl.