數據統計php
❶ php如何統計mysql資料庫列中有逗號隔開的欄位內多個值的個數
如果你要達到你說的這種效果,需要對資料庫表進行重新設計,你現在這種設計不合理!
如果無法改變數據表的話,就需要PHP來進行處理,這需要把數據表裡的所有行全取出來,然後根據切開的單個值組成數組,統計數組里值的個數,再排名。
下面簡單的寫一下代碼,未經測試,主要看解決思路
$rank = $_pie = array();
$result = mysql_query(『『SELECT * FROM table』』); // table為你實際數據表名稱
while ($row = mysql_fetch_assoc($result))
{
if (!empty($row['code']))
{
$_pie = explode(',', $row['code']);
foreach ($_pie as $_v) {
$rank[$_v]++; // 統計加1
}
}
}
if (!empty($rank))
{
rsort($rank); // 排序
$index = 0;
foreach ($rank as $key => $val) {
$index++;
echo $index . "\t" . $key . "\t" . $val . "\n"; // 輸出樣式
}
}
以上php方式應該可以達到你想要的結果,但不能做為實際生產解決方式,因為如果數據表裡的數據多的話,這樣做是非常不理想的,所以建議重新設計數據表!!
如你描述,跟網站中熱門標簽所需效果差不多,可以參考一些開源程序中熱門標簽的解決方案!!
❷ php+mysql怎麼統計重復數據個數
用mysql查詢就可以達到統計的目的
select sheng,shi,qu, count(0) as count_title from mytable group by sheng,shi,qu order by count_title desc;
通過運行這個SQL語句就可以得到 X省,X市,X區 的人數
可通過PHP取出數據再插入到某表
或直接通過修改些查詢一次性插入到某表
❸ php mysql 數據按月統計 沒有的月份怎樣補0
沒有的月份是不是沒有數據記錄,原始表中如果有相應月份的時間,並且estimated_cost欄位數據是0,這句話應該能顯示。
如果沒有9月份的addtime的記錄,肯定搜不出來。
但是在資料庫中添加一個為0的記錄又沒有什麼意義,所以如果要顯示0,可以用php操作Select的結果
【思路:將結果存入數組,對month排序,從數組第一個月份開始,到數組中最後一個月份為止進行循環,碰到沒有的月份在數組中插入對應月份和0值】
❹ PHP怎麼做到統計單篇文章的瀏覽量
先給儲存相應文章的數據表增加一個記錄訪問量的欄位。
1, 可以每訪問一次,欄位數量加一,但是這樣會不準確,因為只要刷新一下,就會記錄一下。
2, 為了防止上面的情況發生,可以記錄訪問者的IP地址,重復的IP地址訪問,只記錄一次。
3, 但是,一個IP地址,只記錄一次,也有問題,比如,一個區域網,多個訪問者,共用一個IP地址,這樣也會記錄不準確。所以最好,一個IP地址一定時間內訪問記錄一次。這樣相對好一點。
4, 不過,即使記錄IP地址,但是也有可能有惡意的用戶通過切換IP,或者通過刷票軟體來刷訪問量。這些問題,還需要更深的研究一下,怎麼應對。
比如:
<?php
$ip = $_SERVER['REMOTE_ADDR'];
//循環對比數據表中儲存的IP,如果IP存在,不再記錄
$query = mysql_query("select * contetns where ip = '".$ip."'");
if(mysql_num_rows($query) > 0){
//IP存在
}else{
//記錄訪問量
}
?>