Willekeurig aantal films van die week?
Hendrik de Jager
12/01/2011 11:27:11Ik heb de volgende vraag en ik hoop dat ik het goed uitleg:
Ik heb een website met een database van +/- 300 films.
Elke film heeft ook een release week en daar heb ik een vraag over.
De database ziet als volgt:
----------------------------
|id|filmtitel|releaseweek|
Nu zou ik graag op de voorpagina van mijn website: 4 willekeurige films uit de desbetreffende release week.
Ik kan wel de huidige week pakken met : date("W")
Daarmee kan ik dus wel een film pakken, of d.m.v loop de eerste 4, maar dan is het dus altijd hetzelfe.
Hoe krijg ik nu 4 verschillende films uit de week?
Ik heb een website met een database van +/- 300 films.
Elke film heeft ook een release week en daar heb ik een vraag over.
De database ziet als volgt:
----------------------------
|id|filmtitel|releaseweek|
Nu zou ik graag op de voorpagina van mijn website: 4 willekeurige films uit de desbetreffende release week.
Ik kan wel de huidige week pakken met : date("W")
Daarmee kan ik dus wel een film pakken, of d.m.v loop de eerste 4, maar dan is het dus altijd hetzelfe.
Hoe krijg ik nu 4 verschillende films uit de week?
Gewijzigd op 12/01/2011 11:27:34 door Hendrik de Jager
PHP hulp
22/11/2024 04:02:29- Mark -
12/01/2011 11:46:15Terence Hersbach
12/01/2011 11:51:49Let op dat ORDER BY RAND() enorm traag is. Je kan dan nog beter alles van die week ophalen, die shuffelen dmv array_shuffle oid, en dan de eerste 4 weergeven.
Nog beter is het om niet de array_* functies daarvoor te gebruiken.
Nog beter is het om niet de array_* functies daarvoor te gebruiken.
Kris Peeters
12/01/2011 13:02:16Terence Hersbach op 12/01/2011 11:51:49:
Let op dat ORDER BY RAND() enorm traag is....
Wanneer zou dat eigenlijk spelen?
Ik veronderstel dat eerst de WHERE wordt bekeken. Dat filtert al heel veel weg (alles wat niet in de week valt).
Dan pas, met de overgebleven records, zou die ORDER beginnen werken. Die traagheid zou dus maar een probleem zijn voor vrij weinig records.
Of maak ik hier een redeneringsfout? Ik ken niet te veel van de interne werking van mySQL.