統(tǒng)計,就是把基本的數(shù)據(jù),整合起來。
網(wǎng)站制作、網(wǎng)站建設(shè),成都做網(wǎng)站公司-成都創(chuàng)新互聯(lián)公司已向近1000家企業(yè)提供了,網(wǎng)站設(shè)計,網(wǎng)站制作,網(wǎng)絡(luò)營銷等服務(wù)!設(shè)計與技術(shù)結(jié)合,多年網(wǎng)站推廣經(jīng)驗(yàn),合理的價格為您打造企業(yè)品質(zhì)網(wǎng)站。
用到sql的,有g(shù)roup by 功能,count功能,order by功能等等。
sql將收集的數(shù)據(jù),進(jìn)行統(tǒng)計分析。
一般情春襲手況下,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)的話,就很好處理了。
“用戶退出或者關(guān)閉瀏覽器SESSION消失的時候在線用戶表刪除相對應(yīng)的數(shù)據(jù)”
這里不可行。。服務(wù)器沒辦法獲取這個信息的。都是耐祥嫌被動請求的。
要換個昌手思路,要用js或者其它方式定時觸發(fā)刪除。。
一般15分鐘或者30分鐘。。
數(shù)據(jù)庫還要記錄IP,宴如記錄最近一次觸發(fā)時間。
原理:根據(jù)不同的IP統(tǒng)計出當(dāng)前有多少人在線。
實(shí)現(xiàn)方式:可以用數(shù)據(jù)庫,也可以用文本。
我這里用了文本實(shí)現(xiàn)。
$user_online?=?"count.php";?//?保存人數(shù)的文件
touch?(?$user_online?);?//?如果沒有此文件,則創(chuàng)建
$timeout?=?30;?//?30秒內(nèi)沒動作者,認(rèn)為掉線
$user_arr?=?file_get_contents?(?$user_online?);
$user_arr?=?explode?(?'#',?rtrim?(?$user_arr,?'#'?)?);
print_r?埋知卜(?$user_arr?);
$temp?=?array?();
foreach?(?$user_arr?as?$value?)?{
$user?=?explode?(?",",?trim?(?$value?)?);
if?(($user?[0]?!=?getenv?(?'REMOTE_ADDR'?))??($user?[1]??time?()))?{?//?如果不是本用戶IP并時間沒有超時則放入到數(shù)組中
array_push?(?$temp,?$user?[0]?.?","?.?$user?[1]?);
}
}
array_push?(?$temp,?getenv?(?'REMOTE_ADDR'?)?.?","?.?(time?()?+?($timeout))?.?'#'?);?//?保存本用戶的信息
$user_arr?=?implode?(?"#",?$temp?);
//?寫入文件
$fp?=?fopen?(?$user_online,?"w"?);
flock?(?$fp,?LOCK_EX?);?//?flock()?不能在NFS以及其他的一些網(wǎng)絡(luò)文件系統(tǒng)中正常工作
fputs?(?$fp,?$user_arr?);
flock?(?$fp,?LOCK_UN?);
fclose?(?$fp?);
echo?"當(dāng)前有"?.?count?(?$temp?彎穗)?.?"人猛悶在線";