Top 10/20/30/osv. lister
Jeg er ved at lave et link index i stil med Yahoo! og Jubii, og har brug forat 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, '(Link: http://www.heaven-copenhagen.dk/',)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 der skal være nogle JOINS, DISTINCT, GRGOUP BY osv., men jeg er ikke så forfærdeligt hård til SQL, så jeg håber meget, at der her er nogen som vil/kan hjælpe.
