Hej gruppe!
Jeg er ved at lave et link index i stil med Yahoo! og Jubii, og har brug for
at lave en Top 10/20/30/.. liste over de links, som flest har klikket på i
de sidste 7 dage.
Tabelopbygningen er således:
CREATE TABLE `links_click` (
`ID` int(11) NOT NULL auto_increment,
`LinkId` int(11) NOT NULL default '0',
`CatId` int(11) NOT NULL default '0',
`ClickCategory` char(3) NOT NULL default '0',
`Erotic` smallint(6) NOT NULL default '0',
`ClickUrl` varchar(255) NOT NULL default '',
`DateClick` datetime NOT NULL default '0000-00-00 00:00:00',
`IPAddr` varchar(20) NOT NULL default '',
PRIMARY KEY (`ID`),
KEY `LinkId` (`LinkId`,`CatId`),
KEY `DateClick` (`DateClick`),
KEY `ClickCategory` (`ClickCategory`)
TYPE=MyISAM
En post kunne f.eks. se således ud:
insert into `links_click`
(LinkId, CatId, ClickCategory, Erotic, ClickUrl, DateClick, IPAddr)
values
(1, 17, 'lnk', 0, '
http://www.heaven-copenhagen.dk/', '2003-10-17
18:48:21', '212.212.212.212');
Som nævnt er de kun de klik, som er foretaget i de sidste 7 dage der skal
indgå i statistikken, og hvis brugeren med IP adressen 212.212.212.212
indenfor denne periode har klikket på linket med id 1, er det kun det første
klik som skal tælles med.
Desuden har jeg brug for at hente oplysninger fra den tabel, som indeholder
de faktiske oplysninger om hvert enkelt link (beskrivelse, keywords osv.,)
for at kunne præsentere disse oplysninger overfor brugeren af toplisterne.
Jeg kan næsten regne ud, at queryen skal indeholde en JOIN, DISTINCT og
COUNT, men kan ikke helt se, hvordan den skal sættes sammen - der skulle vel
ikke være en venlig sjæl, som vil hjælpe?
--
Mvh. Jesper