Avatar billede php_newbie Nybegynder
17. maj 2002 - 19:57 Der er 12 kommentarer og
2 løsninger

Banner

Hejsa...

jeg skal bruge noget hjælp til at lave mit banner system...

Jeg har en tabel i min Access database som hedder Banner, den indeholder flg kolonner:

id (auotnum.),url (Tekst),vist (Tal),hit (Tal),hit_max (Tal),dato (Dato - Standarddatoformat),periode (Tal),tekst (Notat)

Den skal virke på den måde at den hele tiden viser den som er vist færrest gange.

Men man skal have mulighed forat skrive en periode fx 30 dage, der efter må den ikke blive vist mere. Man skal altså også lade feltet stå tomt.

Der udover skal man også have mulighed for at skrive et max antal hit fx 100, derefter må den heller ikke blive vist mere... Det felt må også gerne kunne stå tomt.

Der med kan man risikere at begge felter står tomt, så skal den vises hvis denne banner er den som er vist færrest gange.

Er i med så langt ??????

Hvordan skal min sql streng så se ud ???

set objRS.objConn.execute("select id,vist,hit,tekst,border,stoerrelse from banner")

På forhånd tak !
Avatar billede a1a1 Novice
17. maj 2002 - 21:18 #1
noget lig:

strSQL = "select TOP 1 id,vist,hit,tekst,border,stoerrelse from banner WHERE hit_max < hit AND dato < #" & Date() & # ORDER BY hit "

skulle kunne gøre det :)
Avatar billede a1a1 Novice
17. maj 2002 - 21:20 #2
strSQL = "select TOP 1 id,vist,hit,tekst,border,stoerrelse from banner WHERE hit_max > hit AND dato > #" & Date() & # ORDER BY hit "
Avatar billede a1a1 Novice
17. maj 2002 - 21:21 #3
hvis hit max gerne må være = 0 og dato = Null

strSQL = "select TOP 1 id,vist,hit,tekst,border,stoerrelse from banner WHERE (hit_max > hit OR hit_max = 0) AND (dato > #" & Date() & # OR IS NULL dato)ORDER BY hit "
Avatar billede a1a1 Novice
17. maj 2002 - 21:24 #4
:))
strSQL = "select TOP 1 id,vist,hit,tekst,border,stoerrelse from banner WHERE (hit_max > hit OR hit_max = 0) AND (dato > #" & Date() & # OR dato IS NULL) ORDER BY hit "
Avatar billede php_newbie Nybegynder
17. maj 2002 - 21:59 #5
Tror der en fejl i den den skulle vises i oerioden som står i kolonen peiode, men forstår ikke helt det med datoen forklar forklar... :)
Avatar billede php_newbie Nybegynder
17. maj 2002 - 22:01 #6
Jeg får også en syntaks fejl
set objRS.objConn.execute("select TOP 1 id,url,vist,klik,tekst,border,stoerrelse from banner WHERE (hit_max > klik OR hit_max = 0) AND (dato > #" & Date() & # OR dato IS NULL) ORDER BY vist desc")

har omdøbt kolonen hit til klik var bange for det måske var noget reserveret ord.
Avatar billede a1a1 Novice
18. maj 2002 - 01:14 #7
hvad er fejlen?

prøv med denne her..
set objRS.objConn.execute("select TOP 1 id,url,vist,klik,tekst,border,stoerrelse from banner WHERE (hit_max > klik OR hit_max = 0) AND (dato > #" & Date() & #) ORDER BY vist desc")
Avatar billede php_newbie Nybegynder
18. maj 2002 - 09:58 #8
der kommer stadig en fejl prøvet at fjerne dato delen men så den ser sådan her ud:

set objRS.objConn.execute("select TOP 1 id,url,vist,klik,tekst,border,stoerrelse from [banner] WHERE (hit_max > klik OR hit_max = 0) ORDER BY vist desc")

så får jeg flg meddelse:
Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A03F3)
Tegnet '=' var ventet


og hvis jeg bruger hele din kode kommer denne fejl:
Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A03EA)
Der er en syntaksfejl
Avatar billede php_newbie Nybegynder
18. maj 2002 - 10:20 #9
viker sådan her nu (kommer ingen fejl)

set objRSbanner = objConn.execute("select TOP 1 * from Banner WHERE (Banner.hit_max > Banner.klik OR Banner.hit_max = 0) ORDER BY Banner.vist desc")

men for det første vil den ikke hente mit banner hvis der ikke er skrevet noget i hit_max.

der udover virke din dato funktion ikke.

den skal virke sådan at hvis der er skrevet noget i feltet peiode må den højst vise banner i den periode der kunne fx stå 30 dage. Så der skal en lidt anderledes dato funktion til !!!
Avatar billede a1a1 Novice
18. maj 2002 - 12:12 #10
har du prøvet at skrive 0 i max banner ?
(eller er den helt tom)
Avatar billede php_newbie Nybegynder
18. maj 2002 - 16:32 #11
den er helt tom !
Avatar billede a1a1 Novice
20. maj 2002 - 13:58 #12
så lav det om så den indeholder 0 som default, eller
("select TOP 1 * from Banner WHERE (Banner.hit_max > Banner.klik OR Banner.hit_max = 0 OR banner.hit_max IS NULL)
Avatar billede php_newbie Nybegynder
23. maj 2002 - 19:50 #13
ok så virker det med max_klik hvad er der i vejen med min dato linie ??

strSQL=strSQL&" AND ("&DateDiff("d", (Banner.dato), Now)&" < Banner.periode OR Banner.periode = 0 OR Banner.periode IS NULL)"

Altså der er gået 13 dage der må højst gå 30....

Fejltype:
Der opstod en Microsoft VBScript-kørselsfejl (0x800A01A8)
Et objekt er obligatorisk: ''
Avatar billede php_newbie Nybegynder
26. maj 2002 - 16:12 #14
okay du får halvedelen af pointene får dine svar opretter et nyt spg med dato problemmet !
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
Kurser inden for grundlæggende programmering

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