Avatar billede ellegaarddk Nybegynder
28. oktober 2007 - 20:47 Der er 14 kommentarer og
2 løsninger

mest læst de sidste tre dage

På et nyhedssite i php/mysql er jeg blevet bedt om at lave en visning af den mest læste artikel over de sidste tre dage.
Jeg har allerede en aflæsning af antal læsninger, men  kan ikke gennemskue hvordan i alverden jeg løser dette problem uden en hel masse ekstra programmering.
Avatar billede ellegaarddk Nybegynder
28. oktober 2007 - 20:50 #1
http://www.tek-tips.com/viewthread.cfm?qid=1385255&page=10
giver et tip, men den viser de mest læste af artikler publiseret indenfor de sidste x dage - ikke helt det jeg ønsker. Den mest læste kan jo godt være en ældre artikel.
Avatar billede w13 Novice
28. oktober 2007 - 20:56 #2
Har du en SQL-sætning?

Det må være noget:

SELECT * FROM [tabel] WHERE [dato]>'for 3 dage siden' ORDER BY [dato] DESC, [hits]
Avatar billede arne_v Ekspert
28. oktober 2007 - 21:00 #3
SELECT id,COUNT(*) AS antal
FROM tabel
WHERE dato > x
GROUP BY id
ORDER BY COUNT(*) DESC
LIMIT 1
Avatar billede ellegaarddk Nybegynder
28. oktober 2007 - 21:16 #4
Nej, læs lige igen!

Jeres forslag vil vise (så vidt jeg kan se) artikler OPRETTET indenfor de sidste x dage. Den meste læste kan jo godt være ældre end som det. For eksempel har alle artikler med politisk indhold jo pludselig fået fornyet relevans, også selvom de er skrevet for 14 dagen siden...  ;-)
Avatar billede w13 Novice
28. oktober 2007 - 21:21 #5
Mit [dato]-felt står for et felt, som gemmer den dato, hvor det sidst blev læst. Det skal du vel have, for at kunne lave det, du ønsker. Så når artiklen læses, skal feltet opdateres til nuværende dato.
Avatar billede arne_v Ekspert
28. oktober 2007 - 21:23 #6
Jeg antager at dy har en tabel med en række for hver læsning.
Avatar billede ellegaarddk Nybegynder
28. oktober 2007 - 21:32 #7
arne: det var det jeg havde håbet at der var en genial måde at slippe udenom...  :-(

w13: hvad hjælper det at kende dato for sidste læsning? Forklar lige pricippet bag dit forslag.

Jeg er godt klar over at det kunne klares ved at lave en optælling af læsninger per dag, men det vil betyde al for meget arbejde for databasen - formoder jeg. Det vil desuden være en større opgave en budgettet kan klare - derfor leder jeg efter en genvej.
Og den kunne evt. være funktionen der viser den mest læste af de sidste x dages artikler.
Avatar billede w13 Novice
28. oktober 2007 - 21:43 #8
Hvordan vil du finde ud af, hvad der er blevet læst mest, hvis du ikke tæller, hvor meget det er blevet læst?
Avatar billede arne_v Ekspert
28. oktober 2007 - 22:03 #9
Du kan kun vise mest læste hvis du enten har en række per læsning eller et felt
du tæller op ved hver læsning.

True online altså.

Som mindst ressourcekrævende kan du loade data baseret på din access log hver
x'te time.
Avatar billede ellegaarddk Nybegynder
28. oktober 2007 - 22:25 #10
Jeg har et felt med antal læsninger, men kun en total. Og jeg har ikke adgang til access logs.

Det lyder ikke som om der er nogen nem måde at gøre det på. Jeg kan ikke se nogen anden løsning en tre felter pr artikel: 1., 2. og 3. dag - hvis det altså skulle være de seneste tre dage. Et cron job flytter tallene ved midnat og mest læste findes med summen af dem.

Hvad kan man ellers gøre?
Avatar billede ellegaarddk Nybegynder
29. oktober 2007 - 20:47 #11
det blev til "de mest læste artikler fra de sidste x dage" i stedet. Det andet blev for omfattende en justering. Smid et svar
Avatar billede arne_v Ekspert
30. oktober 2007 - 02:28 #12
alle formoder jer ?

og svar fra mig
Avatar billede ellegaarddk Nybegynder
30. oktober 2007 - 07:59 #13
ja tak
w13?
Avatar billede w13 Novice
30. oktober 2007 - 12:10 #14
Oki! =)
Avatar billede ellegaarddk Nybegynder
30. oktober 2007 - 13:53 #15
- og så er der lukket
Avatar billede w13 Novice
30. oktober 2007 - 15:16 #16
Tak for point! :)
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
Computerworld tilbyder specialiserede kurser i database-management

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