首先,PHP生成數(shù)據(jù)統(tǒng)計(jì)圖可以用jpgraph這個(gè)類庫,很方面也很容易使用,官方網(wǎng)站是:
創(chuàng)新互聯(lián)2013年至今,先為寧陵等服務(wù)建站,寧陵等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為寧陵企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
jpgraph生成的的統(tǒng)計(jì)圖其實(shí)就是圖片格式,當(dāng)然也可以放到Drupal中,直接在模板中引入這個(gè)圖片鏈接或者在編輯器中插入圖片都可以。Drupal的模板機(jī)制可以參考這篇文章:
希望可以幫助到你。
統(tǒng)計(jì),就是把基本的數(shù)據(jù),整合起來。
用到sql的,有g(shù)roup by 功能,count功能,order by功能等等。
sql將收集的數(shù)據(jù),進(jìn)行統(tǒng)計(jì)分析。
一般情況下,sql處理后得到的數(shù)據(jù),還要通過php的邏輯來進(jìn)行整理。
以一定的格式,展示到前臺。
一般都是以數(shù)組的方式展示,這也是數(shù)據(jù)結(jié)構(gòu)的概念。
看這張圖片,基本想想結(jié)構(gòu)大概為
{上線數(shù),出單總數(shù),核過總數(shù),總?cè)司?,總核率,{(坐席人1,工號1,出單數(shù)1,發(fā)貨數(shù)1,核單率1),(坐席人2,工號2,出單數(shù)2,發(fā)貨數(shù)2,核單率2)}}
如果用php展示成上面的結(jié)構(gòu)的話,就很好處理了。
如果你不需要記錄每次訪問的詳細(xì)信息,可以不用記錄每一次訪問,那樣數(shù)據(jù)庫會非常龐大,而且統(tǒng)計(jì)也會很慢。
簡單的方法是就是只要一條記錄,用四個(gè)字段分別累計(jì)本日、本周、本月、本年、總共的訪問數(shù),每次訪問的時(shí)侯對這些字段加1,另外一個(gè)字段記錄最后一次更新的日期,如果最后更新日期不是本日,就在加1前把本日字段設(shè)置為0,本周、本月、本年字段類似處理即可。
分兩種情況,一種是前置頁面統(tǒng)計(jì),這個(gè)時(shí)候統(tǒng)計(jì)發(fā)送在點(diǎn)擊的時(shí)候,適用于這個(gè)鏈接是廣告鏈接,或者其他鏈接。第二種,是頁面打開加入統(tǒng)計(jì),這種適用于SEO或者其他的需要,統(tǒng)計(jì)當(dāng)前頁面到底有多少點(diǎn)擊率,不受前置頁面影響。
在鏈接里面加一個(gè)hook。比如
a href="頁面鏈接" onclick="countHit(this)"鏈接文字/a
然后定義一個(gè)js函數(shù)
function countHit(obj){
var url = $(obj).attr('href');
//這里我使用jq,以鏈接為標(biāo)準(zhǔn)。當(dāng)然對于廣告可以以
//廣告id為統(tǒng)計(jì) 的標(biāo)準(zhǔn)
$.ajax({
url : '你作為統(tǒng)計(jì)的php頁面地址';
type : 'post',//使用post是防止瀏覽器直接輸入這個(gè)地址而被刷
data:{link:url}//把鏈接地址post傳過去
});
}
在php頁面
$link = addslashes($_GET['link']);//安全處理下,讓link能正常存入
//接下來做有效性判斷,這里省略
$query = mysql_query("SELECT 1 FROM `統(tǒng)計(jì)表` WHERE `link`='$link'");
$has = mysql_fetch_array($query);
if($has){
//當(dāng)前存在統(tǒng)計(jì)
mysql_query("UPDATE `統(tǒng)計(jì)表` SET hits=hits+1 WHERE `link`='$link'");
}else{
mysql_query("INSERT INTO `統(tǒng)計(jì)表` (link,hits) VALUE('$link','1')");
}
這樣就完成了統(tǒng)計(jì)內(nèi)容
當(dāng)前頁面統(tǒng)計(jì)
一般這種統(tǒng)計(jì)為某種信息內(nèi)容的統(tǒng)計(jì),我這里假設(shè)是某一條新聞的統(tǒng)計(jì),這個(gè)信息里面有個(gè)hits字段作為統(tǒng)計(jì)
只要在php頁面里面加上
mysql_query("UPDATE `新聞表` SET hits=hits+1 WHERE `id`='新聞id'");
這一句就可以完成統(tǒng)計(jì)了
phpMyVisites
phpMyVisites是一個(gè)網(wǎng)站流量統(tǒng)計(jì)系統(tǒng),它能夠提供非常詳細(xì)的統(tǒng)計(jì)報(bào)告和高級圖形報(bào)表。phpMyVisites不是一個(gè)Apachelog分析工具,它建有自己的log。它的特點(diǎn)包括: 安裝部署:提供可視化的安裝向?qū)?,并且使用簡單只要把一段簡單的Javascript代碼添加到你網(wǎng)站的頁面中就能夠馬上開始收集訪問者的信息。一個(gè)簡潔,友好的界面可用來展示數(shù)據(jù)和幫助數(shù)據(jù)分析。提供簡潔,明了的圖形分析報(bào)表。安全:phpMyVisites能夠最大限度地阻止入侵和外部攻擊。支持多網(wǎng)站統(tǒng)計(jì)多用戶:可以添加無限個(gè)用戶并對每個(gè)用戶賦予不同的管理權(quán)限(針對某一個(gè)網(wǎng)站的查看和管理的權(quán)限)。國際化支持:phpMyVisites提供 30種語言包。能夠準(zhǔn)確統(tǒng)計(jì)一段時(shí)間內(nèi)的訪問量(天/周/月/年)。訪問者的回頭率:新訪問者,經(jīng)常訪問者,有規(guī)律性的訪問者。提供多種文件格式的統(tǒng)計(jì)報(bào)告(PDF,Image等)。對被統(tǒng)計(jì)的網(wǎng)頁進(jìn)行分組/分級。訪問者分析:統(tǒng)計(jì)訪問者是從哪個(gè)頁面離開網(wǎng)站的和從哪個(gè)頁面進(jìn)入網(wǎng)站或通過哪個(gè)搜索引擎的關(guān)健字進(jìn)入網(wǎng)站,在網(wǎng)站的停留時(shí)間,所訪問的頁面等??赏ㄟ^e-mail或RSS聚合獲取網(wǎng)站的流量信息。
phpTrafficA
phpTrafficA是一個(gè)統(tǒng)計(jì)工具用于網(wǎng)站流量分析。基于PHP與MySQL開發(fā)。它能夠統(tǒng)計(jì)你網(wǎng)站的流量,包括來自哪些搜索引擎,關(guān)健字和其它轉(zhuǎn)向你網(wǎng)站的鏈接。它還能夠分析瀏覽你網(wǎng)站所用的操作系統(tǒng),瀏覽器,訪問者停留時(shí)間等等。
AudiStat
AudiStat是一個(gè)基于PHP+MySQL開發(fā)的,輕量級的,占用服務(wù)器很少資源的網(wǎng)站流量統(tǒng)計(jì)系統(tǒng)。 它能夠統(tǒng)計(jì)點(diǎn)擊量,涉及的頁面,訪問者國家,訪問者域名,訪問者所用的瀏覽器等。統(tǒng)計(jì)信息展示頁面可以通過Html代碼自己定制。在最新版本中還加入跟蹤google爬蟲的功能。
piwik
Piwik是一套基于Php+MySQL技術(shù)構(gòu)建,能夠與Google Analytics相媲美的開源網(wǎng)站訪問統(tǒng)計(jì)系統(tǒng),前身是phpMyVisites。Piwik可以給你詳細(xì)的統(tǒng)計(jì)信息,比如網(wǎng)頁瀏覽人數(shù), 訪問最多的頁面, 搜索引擎關(guān)鍵詞等等,并且采用了大量的AJAX/Flash技術(shù),使得在操作上更加便易。此外,它還采用了插件擴(kuò)展及開放API架構(gòu),可以讓開發(fā)人員根據(jù)自已的實(shí)際需求創(chuàng)建更多的功能.
Webanalyse
采用PHP4開發(fā)的網(wǎng)站流量統(tǒng)計(jì)工具。WebAnalyse沒有使用任何數(shù)據(jù)庫,或Apache logs支持。以便讓安裝更加快速和簡單。
Open Web Analytics
Open Web Analytics是一個(gè)開源的網(wǎng)站流量統(tǒng)計(jì)系統(tǒng)?;赑HP/Open Flash Chart/Ajax技術(shù)開發(fā),既可以單獨(dú)使用也可以與WordPress、GalleryMediaWiki集成使用。支持多個(gè)網(wǎng)站,集成 Google Maps,RSS/Atom訂閱跟蹤等功能。
SlimStat
SlimStat是一個(gè)基于PHP+MySQL開發(fā)的網(wǎng)站流量訪問統(tǒng)計(jì)分析系統(tǒng),類似于Google Analytics。它可以按時(shí)間段顯示:每個(gè)頁面的訪問數(shù),涉及的URL和域名,搜索關(guān)鍵字,瀏覽器種類、操作系統(tǒng)類型、國家、分辯率等。
具體內(nèi)容去參考資料里面看吧,個(gè)人比較推薦piwik
補(bǔ)充:
如果你想用TXT文件記錄也是可以的..
原理一樣,
只不過把更新數(shù)據(jù)庫那一語句,改為讀取TXT中的數(shù)字,然后+1,再保存文件,就可以了..
配合數(shù)據(jù)庫一起使用
例如你的文章列表文件叫l(wèi)ist.php
顯示文章內(nèi)容的頁面叫做detail.php
本來在list.php中的文章題目是直接連到detail.php的,
但如果你要計(jì)算點(diǎn)擊次數(shù),只要中間加一個(gè)頁面就可以了,而且在該頁面實(shí)現(xiàn)跳轉(zhuǎn)
中間的頁面假如叫做count.php
在list.php中的鏈接連到count.php,
例如地址如下count.php?id=1
id是文章在數(shù)據(jù)庫中的ID值
count.php的內(nèi)容如下
?php
$id = $_GET['id']; //接收ID值
$sql = "UPDATE database SET hit=hit+'1' WHERE id = '$id'"; //執(zhí)行更新點(diǎn)擊數(shù)的語句
$result = mysql_query($sql); //執(zhí)行語句
$url = "detail.php?id={$id}"; //執(zhí)行更新后要跳轉(zhuǎn)的地址,就是去文章頁面
header("location: $url"); //執(zhí)行跳轉(zhuǎn)
?
其中,只要調(diào)用數(shù)據(jù)中的hit字段里面的值就可以顯示點(diǎn)擊數(shù)了.