Ik weet dat dit al diverse keren voorbij gekomen moet zijn, maar kon met de zoekfunctie niet zogauw iets geschikts vinden.

Hoe kan ik een random record selecteren uit de db?

Ook moet dit werken met een tabel waarbij de id's niet opeenvolgend zijn, en waar er weleens een paar missen.

Ik zelf zat te denken aan de tabel op te halen, deze in een array te zetten, en dan een random op die array uit te voeren, maar weet niet hoe hier aan te beginnen.
Dat hoeft niet eens, je kunt het met 1 query af:


SELECT veld
FROM tabel
ORDER BY RAND()
LIMIT 1
Precies, dit kan uitstekend met MySQL. Mocht je ooit nog een randomwaarde uit een array nodig hebben:
<?php
$array = range (1, 100);
shuffle ($array);
echo $array[0];
?>
@Jan: Waarom gebruik je geen array_rand() ? Die is er voor gemaakt en werkt altijd, ongeacht de naam van de key.

Jij neemt aan dat 0 de eerste key is, maar wanneer je een associatieve array hebt, gaat dit dus niet lukken.
Ik ga de code van Blanche gebruiken, als je het beredeneert is het inderdaad best logisch. maar wist niet dat mysql ook een functie rand() had.

EDIT: het werkt perfect!

Reageren