![]() |
random in php en mysql
ik heb een database met
1/ een id nummer 2/ een tekst 3/ nog wat meer dingen die verder van minder belang zijn hiervoor nu wil ik op mijn site een random tekst hiervan nemen, daarbij loop ik echter tegen enkele problemen op. Ik gebruikte de functie rand(1, 40) (omdat momenteel mijn hoogste row 40 is) 1: ik heb het idee dat ik de ene tekst meer krijg dan de andere (dat er dus niet goed een random nummer wordt getrokken) 2: als ik rows verwijder/toevoeg klopt hij niet meer, dan kan ik (als er eentje is verwijderd) een lege output krijgen, of sommige teksten worden helemaal niet gebruikt (omdat de rand maar t/m 40 gaat) weet iemand hiervoor een betere oplossing? ik zat zelf aan een array te denken, waar dan met echo de id's in worden gezet. Maar heb nog nooit met arrays gewerkt, dus dat lukte mij niet helemaal. en dan ben ik nog steeds niet van het "niet helemaal goed random probleem" af |
SELECT * FROM meuk ORDER BY RAND() LIMIT 1;
|
Citaat:
maar dan zit ik nog steeds met het probleem dat het niet helemaal random is... ik heb een keer gehoord dat er ook een soort gelijke functie is als RAND maar dan beter,, |
Rand(om) is random, oftewel willekeurig is willekeurig. En bovendien scheelt het werk om mySQL te laten kiezen, in plaats van dat later met PHP te doen. Als je het per se in PHP wilt doen moet je niet vergeten de rand()-functie seed te geven, anders heb je kans dat ie telkens de zelfde willekeurige waarde pakt:
srand ((double) microtime() * 1000000); Test het anders als je het niet vertrouwt. Maak een loopje waarbij je 10.000 keer iets selecteert en tel welke rows hij telkens pakt. [Dit bericht is aangepast door Jon (19-01-2002).] |
Citaat:
|
Citaat:
|
Alle tijden zijn GMT +1. Het is nu 05:35. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.