Avatar billede cronaldo Nybegynder
12. januar 2010 - 23:16 Der er 1 kommentar og
1 løsning

Banner-system med klik og visninger - query vil ikke virke

Hej eksperter.
Jeg har flg. tabeller:

banner
-------------------
id (unique key)
title
bannersrc
maxhits
maxklik
activefrom
activeuntil
dato


bannerhits (dette er visninger)
---------------------
id (unique key)
ip
bannerid (indekseret) (denne henviser til banner.id)
dato


bannerklik (antal klik)
---------------------
id (unique key)
ip
bannerid (indekseret) (denne henviser til banner.id)
dato

Det, jeg vil, er, at den nu skal hente et banner ud, HVOR:


(b.usertype = $usertype ELLER b.usertype = '0')

OG

activefrom <= nu
activeuntil >= nu

OG

maxklik > antallet af rækker i bannerklik hvor bannerid = banner.id

OG

maxhits > antallet af rækker i bannerhits hvor bannerid = banner.id


Er det noget, som er muligt at lave? Jeg har selv prøvet at lave en query, men den virker ikke rigtigt, så jeg vil sætte pris på hvis I gad forsøge at lave en query, der kan ovenstående :)
Avatar billede pi-hus Nybegynder
13. januar 2010 - 06:31 #1
Jeg går ud fra at usertype feltet ligger i banner tabellen.
Det er ikke nævnt nogen steder i dine tabeller.

Jeg ved ikke om man kan bruge HAVING med et felt fra tabellen. Men det vil jeg da tro.
Så er mit bud sådan her:


SELECT b.id, b.title, b.bannersrc
FROM banner b
JOIN bannerhits bh ON b.id = bh.bannerid
JOIN bannerklik bk ON b.id = bk.bannerid
WHERE (b.usertype = $usertype OR b.usertype = '0')
AND (activefrom <= CURRENT_TIMESTAMP AND activeuntil >= CURRENT_TIMESTAMP)
GROUP BY b.id
HAVING COUNT(bh.id) > b.maxhits
AND COUNT(bk.id) > b.maxklik
Avatar billede cronaldo Nybegynder
13. januar 2010 - 15:20 #2
Det er sjovt - det samme har jeg fået fra en anden side. Mange tak for hjælpen og det virker perfekt nu :)
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