Det er fordi RAND-funktionen fra MySQL v. 3.23.52 skal seedes for at give "ordentlige" tilfældige tal og det kan man bl.a. gøre med NOW() - til professionel brug er de tilfældige tal dog slet ikke "gode nok", men ganske brugbare til de fleste formål.
Der er åbenbart nogle issues med brug af RAND i MySQL - der har været mange spørgsmål om det emne på det sidste. Prøv i stedet følgende lille hack jeg har lavet:
$res = mysql_query('SELECT COUNT(*) FROM emner') or die(mysql_error()); $antal = mysql_result($res,0); mysql_free_result($res); if ($antal > 0) { $rndnum = mt_rand(0, $antal-1); $res = mysql_query("SELECT id, emne FROM emner LIMIT $rndnum, 1") or die(mysql_error()); list($id, $emne) = mysql_fetch_row($res); echo "$id - $emne<br>\n"; } else { echo "ingen poster"; }
holybull: At bruge fetch_array() i stedet for fetch_row() gør bare koden langsommere og ikke andet i dette tilfælde!
Her er en alternativ løsning, da RAND() i MySQL virker lidt smådefekt - spørgsmålet har været stillet mange gange det sidste stykke tid!
$res = mysql_query('SELECT COUNT(*) FROM emner') or die(mysql_error()); $antal = mysql_result($res,0); mysql_free_result($res); if ($antal > 0) { $rndnum = mt_rand(0, $antal-1); $res = mysql_query("SELECT id, emne FROM emner LIMIT $rndnum, 1") or die(mysql_error()); list($id, $emne) = mysql_fetch_row($res) echo "$id - $emne<br>\n"; } else { echo 'Ingen poster fundet!'; }
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.