在需要輸出網(wǎng)站用戶注冊數(shù),或者插入數(shù)據(jù)之前判斷是否有重復(fù)記錄的時(shí)候,就需要獲取滿足條件的MySQL查詢的記錄數(shù)目。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名申請、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設(shè)、伊犁網(wǎng)站維護(hù)、網(wǎng)站推廣。
第一種方法:查詢時(shí)候直接統(tǒng)計(jì)
復(fù)制代碼
代碼如下:
$sql="SELECT
COUNT(*)
AS
count
FROM
TABLE
WHERE
id='$id'";
$result=mysql_fetch_array(mysql_query($sql));
$count=$result['count'];
第二種方法:先取出,后統(tǒng)計(jì)
復(fù)制代碼
代碼如下:
$sql="SELECT
*
FROM
TABLE
WHERE
id='$id'";
$result=mysql_fetch_array(mysql_query($sql));
$count=count($result);//或者$count=mysql_num_rows($result);
不過直接使用MySQL的COUNT(*)在數(shù)據(jù)量龐大的時(shí)候,效率的優(yōu)勢是十分顯著的,因?yàn)楹笳咝枰斡?jì)算,所以還是最好使用前者進(jìn)行數(shù)據(jù)條數(shù)的統(tǒng)計(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)行整理。
以一定的格式,展示到前臺(tái)。
一般都是以數(shù)組的方式展示,這也是數(shù)據(jù)結(jié)構(gòu)的概念。
看這張圖片,基本想想結(jié)構(gòu)大概為
{上線數(shù),出單總數(shù),核過總數(shù),總?cè)司偤寺?,{(坐席人1,工號(hào)1,出單數(shù)1,發(fā)貨數(shù)1,核單率1),(坐席人2,工號(hào)2,出單數(shù)2,發(fā)貨數(shù)2,核單率2)}}
如果用php展示成上面的結(jié)構(gòu)的話,就很好處理了。
如果你要達(dá)到你說的這種效果,需要對(duì)數(shù)據(jù)庫表進(jìn)行重新設(shè)計(jì),你現(xiàn)在這種設(shè)計(jì)不合理!
如果無法改變數(shù)據(jù)表的話,就需要PHP來進(jìn)行處理,這需要把數(shù)據(jù)表里的所有行全取出來,然后根據(jù)切開的單個(gè)值組成數(shù)組,統(tǒng)計(jì)數(shù)組里值的個(gè)數(shù),再排名。
下面簡單的寫一下代碼,未經(jīng)測試,主要看解決思路
$rank = $_pie = array();
$result = mysql_query(‘‘SELECT * FROM table’’); // table為你實(shí)際數(shù)據(jù)表名稱
while ($row = mysql_fetch_assoc($result))
{
if (!empty($row['code']))
{
$_pie = explode(',', $row['code']);
foreach ($_pie as $_v) {
$rank[$_v]++; // 統(tǒng)計(jì)加1
}
}
}
if (!empty($rank))
{
rsort($rank); // 排序
$index = 0;
foreach ($rank as $key = $val) {
$index++;
echo $index . "\t" . $key . "\t" . $val . "\n"; // 輸出樣式
}
}
以上php方式應(yīng)該可以達(dá)到你想要的結(jié)果,但不能做為實(shí)際生產(chǎn)解決方式,因?yàn)槿绻麛?shù)據(jù)表里的數(shù)據(jù)多的話,這樣做是非常不理想的,所以建議重新設(shè)計(jì)數(shù)據(jù)表!!
如你描述,跟網(wǎng)站中熱門標(biāo)簽所需效果差不多,可以參考一些開源程序中熱門標(biāo)簽的解決方案??!
php代碼里用explore(',',
$son),分割成數(shù)組,可以統(tǒng)計(jì),也方便使用各個(gè)值,
如果你只是想要個(gè)數(shù),可以用substr_count($son,
',')+1,逗號(hào)出現(xiàn)的次數(shù)加一就是值的個(gè)數(shù)
其實(shí)我感覺你這個(gè)邏輯沒問題,代碼有點(diǎn)問題,我是這么認(rèn)為的,代碼應(yīng)該是這樣
$idzhi = rand(0,表中數(shù)據(jù)條數(shù));
$data = $data['id']; // 我不明白你這里是什么意思
$arr = $m-where($data = $idzhi)-limit(8) -select();
不過我總感覺上面的有問題
$idzhi = rand(0,表中數(shù)據(jù)條數(shù));
$arr = $m-where("id = $idzhi")-limit(8) -select();
不對(duì)的話就試試這個(gè),我個(gè)人覺得這樣是對(duì)的,不明白你那個(gè)$data['id'];是干嘛用的
mysql_connect("localhost","root","123456") or
die("打開數(shù)據(jù)庫服務(wù)器失敗!"); //連接數(shù)據(jù)庫
mysql_select_db("a") or
die("打開數(shù)據(jù)庫a失敗!"); //打開數(shù)據(jù)庫,a為數(shù)據(jù)庫名
$sql = "select id from b"; //id為字段名,b為表名
$result=mysql_query($sql);
if(mysql_query($sql)) //判斷$sql語句是否執(zhí)行
{
$num=mysql_num_rows($result); //取得包含id字段記錄的行數(shù)
echo "一共有".$num."個(gè)id"; }思想就是:根據(jù)含有ID的記錄(數(shù)據(jù)庫里一行內(nèi)容稱為一條記錄)條數(shù)來確定ID的個(gè)數(shù)
當(dāng)前名稱:php統(tǒng)計(jì)數(shù)據(jù)個(gè)數(shù) php統(tǒng)計(jì)數(shù)組個(gè)數(shù)
瀏覽路徑:http://jinyejixie.com/article0/dodpgio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、品牌網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)公司、虛擬主機(jī)、App設(shè)計(jì)、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)