Avatar billede okidoky Nybegynder
20. september 2006 - 13:29 Der er 19 kommentarer og
1 løsning

IP må ikke stemme 24 timer

Hej

Når en bruger, ser et billede på min side, bliver der i db +1 vist.

men hvis han ser den en anden gang inden for 24 timer skal den ikke tilføje til en men springe over det script ?

Mit script

set rs = server.CreateObject("ADODB.Recordset")
rs.open "SELECT * FROM tbl_img WHERE id = " & min_id, conn, 2, 2
   
rs("vis") = rs("vis") + 1
   
rs.update   
img.MoveNext
Wend
Avatar billede fennec Nybegynder
20. september 2006 - 13:43 #1
Du skal have en tabel til, hvor du knytter IP'en til billedID samt et tidspunkt:

[IP2Pic]
id, IP, picID, showTime
Avatar billede okidoky Nybegynder
20. september 2006 - 13:46 #2
ja det har jeg også , de bliver også tilføjet
Avatar billede fennec Nybegynder
20. september 2006 - 13:59 #3
Så slår du bare op i den tabel for om IP'en og billed har en record inden for 24 timer:

rs.open "SELECT * FROM tbl_img WHERE id = " & min_id, conn, 2, 2
set rs1 = conn.execute("select * from IP2Pic where showTime>=#"& dateadd("d",-1,now()) &"# and IP='"& IP &"' and picID="& rs("id"))
if rs1.eof then
  rs("vis") = rs("vis") + 1
  rs.update   
end if
img.MoveNext
Wend
Avatar billede fennec Nybegynder
20. september 2006 - 14:00 #4
... Afhængig af datedasen skal dato delen se anderledes ud (dato formatering), eller det kan laves med DB'ens dato funktioner i stedet for ASP'ens dateadd.
Avatar billede okidoky Nybegynder
21. september 2006 - 09:38 #5
Jeg har 3 tabeller i db, som hedder, img_info ( det er der hvor jeg har hvor mange gange billedet er vist hvor meget den er blevet rated, og hvos mange gange der er blevet stemt  på den)

Og så har jeg den med img_show( der hvor tid ip og det hele er) og til sidst billedet selv i en tabel.

hvad skal jeg gøre ???
Avatar billede fennec Nybegynder
21. september 2006 - 09:49 #6
Ud fra din kode i ?'et skal img_info ikke bruges til noget. "vis" ligger i tbl_img tabellen...
Du skal bare rette:
set rs1 = conn.execute("select * from IP2Pic where showTime>=#"& dateadd("d",-1,now()) &"# and IP='"& IP &"' and picID="& rs("id"))

Så den passer til din img_show tabel
set rs1 = conn.execute("select * from img_show where tidKolonne>=#"& dateadd("d",-1,now()) &"# and IPKolonne='"& IP &"' and picIDKolonne="& rs("id"))
Avatar billede okidoky Nybegynder
21. september 2006 - 10:00 #7
jeg har selv den her men den virker ik

set rs = server.CreateObject("ADODB.Recordset")
rs.Open "select * from hot_rated where ip =" & ip, conn, 2, 2


if not rs.eof then
    do while not rs.eof
    rs("ip") = ip
    rs("img_id") = min_id
    rs("showtid") = now()
    rs.movenext
    loop
    set rs1 = server.CreateObject("ADODB.Recordset")
    rs1.Open "select * from  hot_img_info where img_id =" & rated_id_img, conn, 2, 2
   
    rs1("showed") = rs1("showed") + 1
    rs1.Update
else
response.Write "finde ik"
end if
%>
Avatar billede okidoky Nybegynder
21. september 2006 - 10:01 #8
jeg ved den er helt gal :)
Avatar billede okidoky Nybegynder
21. september 2006 - 10:02 #9
det vil sige jeg kun skal bruge 2 tabeller ? ik

en med ip og tid og det der, og så en med billedet og hvor mange gange den er vist?
Avatar billede fennec Nybegynder
21. september 2006 - 10:13 #10
Whow... Stop lige der.

Nu har du gang i nogle helt 3. tabel navne. Hvordan er din tabel opbygning LIGE NU?? Skal have fuld beskrivelse (tabelnavne, kolonner og datatyper), også er det den vi arbejder ud fra. Vi finder aldrig en løsning, hvis det bliver ændret hele tiden.

Det kan så være, vi skal have ændret din nuværende tabelopbygning. Men vi skal have det samme udgangspunkt, ellers finder vi aldrig ud af noget.
Avatar billede okidoky Nybegynder
21. september 2006 - 10:21 #11
tbl_img:
-img
-vist(hvor mange gange den er vist)
-stemmer(hvor mange har stemt på den)
-rated(hvor meget den har af rate ialt)

tbl_rate:
-ip
-showtid
-img_id
Avatar billede okidoky Nybegynder
21. september 2006 - 10:22 #12
er det ikke sådan de skal være ?
Avatar billede fennec Nybegynder
21. september 2006 - 10:52 #13
Det går an. Og du har kun de 2 tabeller??
Avatar billede okidoky Nybegynder
21. september 2006 - 11:11 #14
hvormange skal jeg ha ?
Avatar billede fennec Nybegynder
21. september 2006 - 11:41 #15
Du kan have alle dem du vil, men så er vi ude i noget forkert DB opbygning :o)

rs.open "SELECT * FROM tbl_img WHERE id = " & min_id, conn, 2, 2
set rs1 = conn.execute("select * from tbl_rate where showtid>=dateadd('d',-1,now()) and IP='"& IP &"' and img_id="& rs("id"))
if rs1.eof then
  rs("vis") = rs("vis") + 1
  rs.update   
end if
img.MoveNext
Wend

Gå ud fra du bruger Access, så jeg har flyttet dataadd funktionen, så den bruger Access' funktione i stedet for ASP'en.
Avatar billede okidoky Nybegynder
21. september 2006 - 11:44 #16
SQL db bruger jeg :*)
Avatar billede okidoky Nybegynder
21. september 2006 - 12:27 #17
?
Avatar billede okidoky Nybegynder
21. september 2006 - 12:30 #18
hvad står 'd' for ?
Avatar billede fennec Nybegynder
21. september 2006 - 13:14 #19
Ms-SQL??

d står for day.
Avatar billede okidoky Nybegynder
29. september 2006 - 23:09 #20
r
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