Avatar billede webweaver Praktikant
21. maj 2013 - 20:43 Der er 2 kommentarer og
1 løsning

Problemer med random select og cache

Hej derude,

Jeg har lidt problemer med random select i SQL sammenhæng.
Skal hente een tilfældig række ud af en tabel. Jeg har dog lidt problemer med at browseren cacher. Eller det tror jeg i hvert fald, at den gør.

Problemet er, at den trækker en tilfældig post ud, hvis man trykker CTRL + F5. Men hvis man bare refresher normalt eller klikker på "forside" linket i menuen, så er det den samme post, der dukker op hele tiden.

I kan se problemet på www.ljelectric.dk.

Den kommer med en tilfældig kundebedømmelse frem øverst i højre hjørne. Hvis I klikker på "forside" i menuen, så er det en bestemt post den hiver frem, og det er den samme hver gang du klikker på forside.

Hvis du i stedet klikker på logo'et ved siden af "forside", så hiver den en anden post frem, men også den samme her hele tiden.

Det er meningen, at den skal hente en tilfældig post HVER gang siden opdateres.

Jeg har benyttet et par metatags for at modvirke problemet, men uden held.

Nogen med nogle gode ideer?

Det er en lille tabel og mit statement ser dermed således ud, hvis det skulle have relevans:

"SELECT navn, areal, tekst FROM votes ORDER BY RAND() LIMIT 0,1"
Avatar billede enco1989 Nybegynder
22. maj 2013 - 15:03 #1
Det er perfomance mæssigt ikke den smarteste idé at lave det sådan...

Har du prøvet følgende?

"SET @rownum := SELECT count(*) FROM votes;
SET @row := (SELECT CEIL((rand() * @rownum));
SELECT navn, areal, tekst FROM votes where id = @row;"
Avatar billede webweaver Praktikant
22. maj 2013 - 22:09 #2
Jeg ved godt, at det ikke er den metode med den hurtigste ydelse. Det er derfor, jeg specifikt skriver, at det er en lille tabel, da det ikke har nogen mærkbar betydning for brugeren i sådan et tilfælde.

I øvrigt virker dit statement ikke. Jeg får i hvert fald ikke nogen data ud af det.
Avatar billede webweaver Praktikant
05. juni 2013 - 11:56 #3
Jeg har løst problemet ser det ud til ved at tvinge cache off via PHP.

Tak for din tid enco1989.
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

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