18. marts 2003 - 18:03Der er
16 kommentarer og 1 løsning
Tilfældig mysql række...
Jeg bruger denne kode til af vælge en tilfældig række i min mysql database:
$mysql = mysql_query("SELECT id, script FROM banner ORDER BY RAND(".time().") LIMIT 1");
Jeg har bare et problem med den.. Jeg har nu kørt på min side i 14 dage, men nogle af bannerne er blevet vist 500 gange, mens andre slet ikke er blevet vist endnu...
Hvordan kan det være at den fungerer så dårligt? Hvordan skal det se ud for at den virker?
På min webserver er der "mysql-3.23.54a-4"... Så det er altså derfor den ikke virker? Er der andet jeg kan gøre, end at bede min hostmaster end at skifte til en nyere version?
$mysql = mysql_query("SELECT *, random() AS r FROM banner ORDER BY r LIMIT 1 "); $row = mysql_fetch_array($mysql);
Fejlen er: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\htdocs\site\musikchart\include\top.php on line 22
works for small tables, but once the tables grow larger than 300,000 records or so this will be very slow because MySQL will have to process ALL the entries from the table, order them randomly and then return the first row of the ordered result, and this sorting takes long time. Instead you can do it like this (atleast if you have an auto_increment PK):
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.