Asp classic 跟踪在线访问者
我想列出我的访问者的IP地址和最后一次浏览的url。我编写的以下代码运行良好,但有一点除外。它不列出最后一个url地址,而是列出所有url地址。例如: 71.187.189.67 | 7/6/2009 9:59:25 PM |/html/default.aspProcess=HomeNewSeason&IMAGECONTENT=bg|u home|u newtaste.gifMore。。。 71.187.189.67 | 7/6/2009 9:59:24 PM |/html/default.aspMore。。。 66.249.68.210 | 7/6/2009 9:51:32 PM |/html/default.aspSection=products&SubSection=products&CATEGORYID=2&SORTBY=PriceDownMore 但我想把它当作 71.187.189.67 | 7/6/2009 9:59:25 PM |/html/default.aspProcess=HomeNewSeason&IMAGECONTENT=bg|u home|u newtaste.gifMore。。。 66.249.68.210 | 7/6/2009 9:51:32 PM |/html/default.aspSection=products&SubSection=products&CATEGORYID=2&SORTBY=PriceDownMore 我的代码Asp classic 跟踪在线访问者,asp-classic,Asp Classic,我想列出我的访问者的IP地址和最后一次浏览的url。我编写的以下代码运行良好,但有一点除外。它不列出最后一个url地址,而是列出所有url地址。例如: 71.187.189.67 | 7/6/2009 9:59:25 PM |/html/default.aspProcess=HomeNewSeason&IMAGECONTENT=bg|u home|u newtaste.gifMore。。。 71.187.189.67 | 7/6/2009 9:59:24 PM |/html/default.as
<%
OnlineTime = DateAdd("n", -10, Now())
SQL = "SELECT COUNT(DISTINCT VISITORIP) AS ONLINE, VISITORIP, HTTPADDRESS, DATEENTERED"
SQL = SQL & " FROM STATS"
SQL = SQL & " WHERE DATEENTERED BETWEEN '" & OnlineTime & "' AND '" & NOW() & "'"
SQL = SQL & " GROUP BY VISITORIP, HTTPADDRESS, DATEENTERED"
SQL = SQL & " ORDER BY DATEENTERED DESC"
Set objOnVisitors = objConn.Execute(SQL)
If objOnVisitors.EOF Then
Else
%>
<!-- Start Post -->
<div class="post">
<div class="date">
<span class="month">Online</span>
<span class="day"><%=objOnVisitors("ONLINE")%></span>
</div>
<p>
<span class="title">Visits Online</span>
</p>
<% Do While Not objOnVisitors.EOF %>
<p>
<%=objOnVisitors("VISITORIP")%>|<%=objOnVisitors("DATEENTERED")%>|<%=objOnVisitors("HTTPADDRESS")%><a href="">More...</a>
</p>
<%
objOnVisitors.MoveNext
Loop
%>
</div>
<!-- End Post -->
End If
objOnVisitors.Close
Set objOnVisitors = Nothing
%>
在线 的
在线访问
||
如果结束
欢迎访客,关门
设置为0=无
%>
此查询应该可以完成此操作。语法可能有点错误。我正在创建一个内部查询来查找MAX(DATEENTERED),并将其加入到STATS中,以将结果限制为每个IP的最新结果
SQL = "SELECT S.VISITORIP, S.HTTPADDRESS, S.DATEENTERED"
SQL = SQL & " FROM STATS S"
SQL = SQL & " JOIN (SELECT VISITORIP, MAX(DATEENTERED) FROM STATS S WHERE DATEENTERED BETWEEN '" & OnlineTime & "' AND '" & NOW() & "') S1"
SQL = SQL & " ON S.VISITORIP = S1.VISITORIP AND S.DATEENTERED = S1.DATEENTERED"
SQL = SQL & " WHERE S.DATEENTERED BETWEEN '" & OnlineTime & "' AND '" & NOW() & "'"
SQL = SQL & " GROUP BY S.VISITORIP, S.HTTPADDRESS, S.DATEENTERED"
SQL = SQL & " ORDER BY S.DATEENTERED DESC"
我想显示最近10分钟内输入的每个IP的最新记录。嗯,不起作用,我现在看到了。如何更改查询,以便只按visitorIP分组,而使用带有where和order by子句的日期?