Avatar billede dennism Nybegynder
05. marts 2003 - 14:29 Der er 12 kommentarer og
1 løsning

Php/MySql

Jeg har et bannersystem, og jeg bruger følgende kode til at få valgt en tilføldig række fra tabellen:

$mysql = mysql_query("SELECT * FROM banner ORDER BY RAND() LIMIT 1");

Men i 125 ud af 133 tilfælde (Har haft scrippet kørende på mit website i et døgn) der er det den første række i tabellen den vælger!..

Hvorfor det?
Avatar billede jelzin101 Praktikant
05. marts 2003 - 14:33 #1
proev at fodre med
srand ((double)microtime()*1000000);
Avatar billede jelzin101 Praktikant
05. marts 2003 - 14:37 #2
se lidt mere om hvorfor her - http://www.php.net/manual/en/function.srand.php
Avatar billede dennism Nybegynder
05. marts 2003 - 14:38 #3
Hvordan skal min foresp. så se ud?
Avatar billede exp Juniormester
05. marts 2003 - 14:38 #4
sådan her:
SELECT * FROM banner ORDER BY srand ((double)microtime()*1000000) LIMIT 1

?
Avatar billede dennism Nybegynder
05. marts 2003 - 14:47 #5
exp >>

Jeg kan ikke få den til at virke.. Kan du?
Avatar billede exp Juniormester
05. marts 2003 - 14:49 #6
Nope - spørger selv hvordan det skal se ud...
Avatar billede dennism Nybegynder
05. marts 2003 - 15:15 #7
jelzin101 >>

Kan jeg få en nærmere forklaring, så jeg/vi kan få det til at virke?
Avatar billede xyborx Nybegynder
05. marts 2003 - 15:23 #8
Indsparker lige en fodnote..
Hvad har PHP-funktionen srand at gøre med MySQL?
http://www.mysql.com/search/index.php?q=srand -> Intet resultat

Men det skal da siges at jeg også har haft det problem. Har dog ikke oplevet det efter jeg skiftede til Linux.. Måske har det noget at sige..?
Avatar billede dennism Nybegynder
05. marts 2003 - 15:26 #9
Hvad skal jeg gøre, for at løse problemet?
Avatar billede sone Nybegynder
05. marts 2003 - 15:34 #10
Prøv:
$mysql = mysql_query("SELECT * FROM banner ORDER BY RAND(".time().") LIMIT 1");
Avatar billede jpvj Nybegynder
05. marts 2003 - 15:35 #11
Du kan jo se, om det er DBMS RAND() der er "defekt". Prøv at lave

SELECT RAND() as rnd FROM banner

Udskriv rnd og se om den skifter hent tilfældigt.

JP
Avatar billede dennism Nybegynder
05. marts 2003 - 15:40 #12
sone >>

Den fungerer godt... Tak for det!
Avatar billede dennism Nybegynder
06. marts 2003 - 14:29 #13
Hmm.. Det ser ikke ud til at løsningen er så god alligevel!
Det har efter et døgns fremvisning af banners, vist sig at nogle bannere f.eks. har været vist 45 gange, mens andre slet ikke har været vist endnu!...

Den kode som "sone" anbefalede mig ligger på følgende side:
http://www.musikchart.dk

Kan I fortælle mig, hvorfor det ikke virker som det skal?
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester