webForumDet fria alternativet

Visa beökare, men bara senaste

ASP

8 svar · 297 visningar · startad av WebbisNet

Medlem sedan feb. 20032 027 inlägg
Frågan#1

Den här funktionen för att visa vem som har besökt ens sida på communityt funkar jättebra, men det jag vill nu är att om amn besöker en sida mer än en gång så vill jag bara att senaste besöket visas....ett namn ska alltså inte visas upprepade gånger.....distinct verkar inte hjälpa

lVisitorId = CLng(session("UserId"))   '# besökarens id
lUserId = CLng(request("UserId"))   '# krypinets ägares id

if lUserId <> lVisitorId then
objConn.execute "INSERT INTO tblUsers_visitors (HomeUserId, HomeVisitorId, HomeDateVisited,HomeTimeVisited) VALUES(" & lUserId & "," & lVisitorId & ",#" & date & "#,#" & time & "#)"
   'response.redirect "view.asp"
end if

Set visitor=objConn.Execute("SELECT DISTINCT TOP 5 tblUsers.userID, tblUsers.username, tblUsers.screenname, tblUsers_visitors.ID, tblUsers_visitors.HomeVisitorId, tblUsers_visitors.HomeUserId, tblUsers_visitors.HomeDateVisited, tblUsers_visitors.HomeTimeVisited "&_
"FROM tblUsers RIGHT JOIN tblUsers_visitors ON tblUsers.userID = tblUsers_visitors.HomeVisitorId where HomeUserId="&request("userID") &" GROUP BY tblUsers.userID, tblUsers.username, tblUsers.screenname, tblUsers_visitors.ID, tblUsers_visitors.HomeVisitorId, tblUsers_visitors.HomeUserId, tblUsers_visitors.HomeDateVisited, tblUsers_visitors.HomeTimeVisited "&_
"ORDER BY tblUsers_visitors.ID DESC")
Medlem sedan mars 20033 686 inlägg
#2

DISTINCTROW?

Känner bara till det, men vet inte om det fungerar, gör något liknande som DISTINCT. Pröva! Alltid värt ett försök. Annars får du väl - som alla andra - vänta på LarsG. :e

Medlem sedan feb. 20032 027 inlägg
#3

magnusfernstrom skrev:

DISTINCTROW?

Känner bara till det, men vet inte om det fungerar, gör något liknande som DISTINCT. Pröva! Alltid värt ett försök. Annars får du väl - som alla andra - vänta på LarsG. :e

Hjälpte tyvärr inte :-)

så det blir till att vänta :-)

Medlem sedan mars 20033 686 inlägg
#4

Äh, jag chansade bara! Jag visste att det fanns också, men inte vad det är för skillnad från DISTINCT. LarsG verkar kunna ALLT inom SQL, typ. Detta är en piece of cake för honom, och många andra på wF! :)

Nåväl. Vänta bara :D

Medlem sedan feb. 20032 027 inlägg
#5

Re: Visa beökare, men bara senaste

WebbisNet skrev:

Den här funktionen för att visa vem som har besökt ens sida på communityt funkar jättebra, men det jag vill nu är att om amn besöker en sida mer än en gång så vill jag bara att senaste besöket visas....ett namn ska alltså inte visas upprepade gånger.....distinct verkar inte hjälpa

lVisitorId = CLng(session("UserId"))   '# besökarens id
lUserId = CLng(request("UserId"))   '# krypinets ägares id

if lUserId <> lVisitorId then
objConn.execute "INSERT INTO tblUsers_visitors (HomeUserId, HomeVisitorId, HomeDateVisited,HomeTimeVisited) VALUES(" & lUserId & "," & lVisitorId & ",#" & date & "#,#" & time & "#)"
   'response.redirect "view.asp"
end if

Set visitor=objConn.Execute("SELECT DISTINCT TOP 5 tblUsers.userID, tblUsers.username, tblUsers.screenname, tblUsers_visitors.ID, tblUsers_visitors.HomeVisitorId, tblUsers_visitors.HomeUserId, tblUsers_visitors.HomeDateVisited, tblUsers_visitors.HomeTimeVisited "&_
"FROM tblUsers RIGHT JOIN tblUsers_visitors ON tblUsers.userID = tblUsers_visitors.HomeVisitorId where HomeUserId="&request("userID") &" GROUP BY tblUsers.userID, tblUsers.username, tblUsers.screenname, tblUsers_visitors.ID, tblUsers_visitors.HomeVisitorId, tblUsers_visitors.HomeUserId, tblUsers_visitors.HomeDateVisited, tblUsers_visitors.HomeTimeVisited "&_
"ORDER BY tblUsers_visitors.ID DESC")

Inte så snyggt att ha det så här som bilden visar :(

senastebesökare.jpg
Medlem sedan feb. 20032 027 inlägg
#6

Ingen som vet?

Medlem sedan maj 2000194 inlägg
#7

Distinct returnerar bara de poster en gång där värdena är lika i alla angivna kolumner.

Medlem sedan dec. 200012 464 inlägg
#8

Varför har du delat upp besökstiden i en date och en time? Det blir bara besvärligare att hantera.

Jag förmodar att det är Access.

SELECT TOP 5 tblUsers.userID, 
             tblUsers.username, 
             tblUsers.screenname, 
             tblUsers_visitors.ID, 
             tblUsers_visitors.HomeVisitorId, 
             tblUsers_visitors.HomeUserId, 
             tblUsers_visitors.HomeDateVisited, 
             tblUsers_visitors.HomeTimeVisited 
        FROM tblUsers 
  inner JOIN tblUsers_visitors tv1 ON tblUsers.userID = tblUsers_visitors.HomeVisitorId 
  where HomeUserId= " & request("userID") & "
and cdate(cstr(tblUsers_visitors.HomeDateVisited) & ' ' & cstr(tblUsers_visitors.HomeTimeVisited))
= (select max(cdate(cstr(tblUsers_visitors.HomeDateVisited) & ' ' & cstr(tblUsers_visitors.HomeTimeVisited)))
     from tblUsers_visitors
    where tblUsers_visitors.HomeVisitorId = tv1.HomeVisitorId)
order by tblUsers_visitors.HomeDateVisited desc, 
         tblUsers_visitors.HomeTimeVisited desc
Medlem sedan feb. 20032 027 inlägg
#9

LarsG skrev:

Varför har du delat upp besökstiden i en date och en time? Det blir bara besvärligare att hantera.

Jag förmodar att det är Access.

SELECT TOP 5 tblUsers.userID, 
             tblUsers.username, 
             tblUsers.screenname, 
             tblUsers_visitors.ID, 
             tblUsers_visitors.HomeVisitorId, 
             tblUsers_visitors.HomeUserId, 
             tblUsers_visitors.HomeDateVisited, 
             tblUsers_visitors.HomeTimeVisited 
        FROM tblUsers 
  inner JOIN tblUsers_visitors tv1 ON tblUsers.userID = tblUsers_visitors.HomeVisitorId 
  where HomeUserId= " & request("userID") & "
and cdate(cstr(tblUsers_visitors.HomeDateVisited) & ' ' & cstr(tblUsers_visitors.HomeTimeVisited))
= (select max(cdate(cstr(tblUsers_visitors.HomeDateVisited) & ' ' & cstr(tblUsers_visitors.HomeTimeVisited)))
     from tblUsers_visitors
    where tblUsers_visitors.HomeVisitorId = tv1.HomeVisitorId)
order by tblUsers_visitors.HomeDateVisited desc, 
         tblUsers_visitors.HomeTimeVisited desc

Jag får:

Microsoft JET Database Engine error '80040e14' 

Syntax error in JOIN operation. 

/view_include.asp, line 39

med

Set visitor=objConn.Execute("SELECT TOP 5 tblUsers.userID,tblUsers.username,tblUsers.screenname,tblUsers_visitors.ID,tblUsers_visitors.HomeVisitorId,tblUsers_visitors.HomeUserId,tblUsers_visitors.HomeDateVisited,tblUsers_visitors.HomeTimeVisited FROM tblUsers "&_ 
"inner JOIN tblUsers_visitors tv1 ON tblUsers.userID = tblUsers_visitors.HomeVisitorId "&_ 
"where HomeUserId= " & request("userID") & " and cdate(cstr(tblUsers_visitors.HomeDateVisited) & ' ' & cstr(tblUsers_visitors.HomeTimeVisited))= (select max(cdate(cstr(tblUsers_visitors.HomeDateVisited) & ' ' & cstr(tblUsers_visitors.HomeTimeVisited))) "&_
"from tblUsers_visitors where tblUsers_visitors.HomeVisitorId = tv1.HomeVisitorId order by tblUsers_visitors.HomeDateVisited desc, "&_ 
"tblUsers_visitors.HomeTimeVisited desc")

Rad 39 är första raden...set visitor ......

278 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
143 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)