2009-07-07 18 views
0

私は訪問者のIPアドレスと最後にサーフィンしたURLを表示したいと思います。コード化された次のコードは、すべてうまく動作します。最後のURLアドレスは表示されませんが、すべてが表示されます。例:オンライン訪問者を追跡する

71.187.189.67 | 2009年7月6日午前九時59分25秒PM | /html/default.aspProcess=HomeNewSeason & IMAGECONTENT = bg_home_newtaste.gifMore ... 71.187.189.67 | 2009年7月6日9 :59:24 PM | /html/default.asp詳細... 66.249.68.210 | 7/6/2009 9:51:32 PM | /html/default.aspSection=products &サブセクション=製品& CATEGORYID = 2 & SORTBY = PriceDownMore ...

しかし、私は

71.187.189.67としてそれをしたい| 2009年7月6日午前九時59分25秒PM | /html/default.aspProcess=HomeNewSeason & IMAGECON TENT = bg_home_newtaste.gifMore ... 66.249.68.210 | 2009年7月6日9時51分32秒PM | /html/default.aspSection=products &小節=製品&区分= 2 & SORTBY = PriceDownMore ...

私のコード

<% 
    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 
%> 

答えて

2

このクエリは、それを行う必要があります。構文が少し間違っているかもしれません。私は、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" 
+0

最後の10分間に入力した各IPの最新の記録を表示したいとします。 –

+0

hmmはっきりしない仕事、私は今それを参照してください。 visitorIPのみでグループ化するようにクエリを変更するにはどうすればよいですか?whereとorder by句で入力した日付を使用しますか? –

関連する問題