統計圖片的點擊率

來源:互聯網
上載者:User
  如果你跟我一樣,自己的首頁是提供各種圖片服務的,那麼知道哪些圖片受歡迎,哪些不受歡迎是相當有必要的。在這裡,向大家介紹一下我用ASP如何解決這個問題的。

  我們首先來分析一下。一般作為圖片網站,首先顯示出來的是一些小尺寸的縮圖,點擊後才顯示出大圖。因此,我們可以在小圖與大圖之間的連結上做文章,讓小圖的連結指向一個ASP檔案,由這個ASP檔案將點擊記錄下來,然後再顯示出大圖,原理是相當簡單的。

  首先,我們要建立一個用來記錄點擊的資料庫檔案,我用的是ACCESS97,其它的資料庫也可以。在這個庫中,只需要一個表,取名就叫1吧。資料庫欄位有三個:picturename(字元型),clicktimes(數字型),starttime(日期型),第一個是圖片的名字,第二個是點擊的總次數,第三個是第一次點擊的時間。注意,欄位名不能用漢字。

  建好庫後,接下來是介面和程式的編製。在FrontPage2000中建立一個HTML檔案,插入幾張圖片,並用縮圖功能把它縮成小圖,儲存。再建立一個ASP檔案,它的原始碼如下:

  <% Server.ScriptTimeOut = 60 //設定逾時時間
   Response.Expires =0%> //設定網頁的到期時間為0
  <!--#include file =″adovbs.inc″ --> //調入VB常量說明檔案
  <%
  Dim picturename1,clicktimes1,starttime1 //申明用來儲存資料的變數。
  Dim connection,record //申明用來開啟資料庫的變數。
  Picturename1= Request.QueryString(″picturename″)//取得圖片的名字。
  Set connection = Server.CreateObject(″ADODB.Connection″)
   Set record= Server.CreateObject(″ADODB.Recordset″)
   Record.locktype=3 //設定record對象的鎖定方式
   Record.cursortype=adopenforwardonly //設定遊標的方向只能向前
   dsn =server.MapPath(″access.dsn″) //取得access.dsn在伺服器的路徑
  mdb=server.mappath(″click.mdb″)   //取得click.mdb的路徑
  mydsn=″filedsn=″+dsn+″;dbq=″+mdb+″;″
  connection.Open mydsn
  //以上這些是開啟資料庫的操作。其中access.dsn是一個ACCESS資料庫的設定檔。

  下面,我們要取得在資料庫中圖片名字對應的點擊次數。首先在庫中尋找有沒有這個名字。
  sql=″SElect * from 1 where picturename=′″&picturename1&″′″ //構建SQL語句。
  Record.open sql, connection //執行SQL查詢
  查詢後,我們要判斷一下庫中有沒有對應的記錄。如果沒有就要建立一個:
  if record.EOF=true then
  thistime=1
  currenttime=date
  Record.close() //關閉record這個對象,下面要重新以另一種方式開啟
  sql=″insert into 1(picname,clicktimes,starttime) values(′″&picturename1&″′,′″&thistime&″′,′″&currenttime&″′)″ ′構建SQL插入語句
  set record=connection.Execute(sql)
  else
  totaltimes=cint(record(″clicktimes″)) //從資料庫中取得以前存入的點擊次數
  totaltimes=totaltimes+1 //加上這一次
  record(″clicktimes″)=totoletimes //重新賦值
  record.updata() //更新資料庫中的記錄
  endif
  %>

  以上,點擊記錄的工作就基本上完成了,千萬別忘了,還要把圖顯示出來。這也很簡單,只需在<body>與</body>間加入一句 <img border =″0″ src=″<%=picturename1%> >就可以了。如果需要的話,還可以寫上總的點擊次數:<% Response.Write picturename1&″這幅圖片總共被點擊″&totaltimes&″次″ %>

  到此為止,ASP部分就完成了。在前一個HTML檔案中還要作些小改動。把所有的
  <a href=″檔案名稱″><img border=″0″ src=http://edu.cnzz.cn/NewsInfo/″檔案名稱_small.jpg″ alt=″檔案名稱.jpg (48344 位元組)″ width=″120″ height=″98″></a>

  通通都改成<a href=″jilu.asp?picturename=檔案名稱><img border=″0″ src=http://edu.cnzz.cn/NewsInfo/″檔案名稱_small.jpg″ alt=″檔案名稱.jpg (48344 位元組)″ width=″120″ height=″98″></a>其中jilu.asp是剛才的那個ASP檔案名稱。

  如果就記錄點擊情況而言,上面這些基本上就足夠了。但是這樣記錄下的的結果需要下載下來才知道,這似乎有點太原始了。所以下面還要加入線上統計的功能。

  用來統計的程式,應該能夠按升序或降序排列記錄,顯示每天的點擊率,如果條目太多,還有必要加入翻頁功能。

  查看統計只是讓站長做的工作,所以設定一個密碼是很有必要的。因此,建立一個HTML檔案,插入一個表單:

  <form method=″POST″ action=″tongji.asp″>
  <p><input type=″radio″ value=″升″ checked name=″R1″>升序排列
  <input type=″radio″ name=″R1″ value=″降″>降序排列</p>
  <p><input type=″text″ name=″T1″ size=″20″><input type=″submit″ value=″提交″ name=″B1″><input type=″reset″ value=″全部重寫″ name=″B2″></p>
  <p> </p>
  </form>

  下面是tongji.asp的內容:
  <%
  if (request.From(T1)<>″1234″) then
  response.write ″你不能進入!!!″
  response.end
  end if
  Set connection = Server.CreateObject(″ADODB.Connection″)
  Set record= Server.CreateObject(″ADODB.Recordset″)
  Record.locktype=3  
  Record.cursortype=adopenforwardonly
  dsn =server.MapPath(″access.dsn″)
  mdb=server.mappath(″click.mdb″)   
  mydsn=″filedsn=″+dsn+″;dbq=″+mdb+″;″
  connection.Open mydsn
  if request.Form(R1)=″升″ then
   sql=″select * from 1 order by clicktimes″
  Else
   Sql= ″select * from 1 order by clicktimes DESC″
  End if
   Record.open sql,connection //執行SQL
  cuttenttime=date
  %>

  下面是顯示的部分,這裡用一個表格來分隔各種資料:
  <table border=″1″ width=″100%″>
  <%while record.eof =false
  if record(″clicktimes″)=0 then record.MoveNext %> //在資料庫中有一些資料並不正常,要排除它們。
  <tr>
  <td width=″33%″><%=record(″picname″)%>  </td>
  <td width=″33%″><%=record(″clicktimes″)%> </td>
<td width=″34%″><%=csng( record(″clicktimes″)/(datediff(″d″,record(″starttime″),currenttime,0,0)+1))%> </td>
  </tr>
  <%
  record.MoveNext //遊標向下移
  wend%>  
  </table>

  到這裡,一個簡單的圖片點擊記錄、統計的ASP程式就完成了,希望大家在這個基礎上添枝加葉. 
 



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。