Ik wil doormiddel van een query de laatst 10 ingevoerde records uit een database selecteren. Vervolgens wil ik de volgorde telkens random weergeven.
Nu kan ik de volgende query gebruiken:
SELECT * from Content WHERE Soortbericht = 2 ORDER BY RAND() LIMIT 10
Nu haal ik dus willekeurig (random) 10 records op. Maar ik wil graag alleen de laatst ingevoerde. Kan ik bijvoorbeeld ook 2 order opdrachten meegeven zodat ik ook nog op id (autonummering) kan sorteren?
@ Rafael: die heb ik net ff lokaal getest, maar die geeft nog steeds de laatste tien id's in aflopende volgorde. Een minder elegante oplossing zou dus zijn:
select *
from Content
order by id desc
limit 10
Dan de resultaten fetchen, in een array stoppen, en die met [php]shuffle[/php] door elkaar gooien.
Net getest op een grotere tabel en het werkt prima.
nog even de juiste syntax:
<?php
$sql="SELECT * // normaal natuurlijk de velden
FROM ( // nu komt de squbquery
SELECT * FROM jouwtabel LIMIT 10)
AS HOOGSTE_TIEN // zonder alias werkt het niet. Ik denk dat mysql het //resulaat als view behandeld
ORDER BY RAND()";
?>