十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在需要输出网站用户注册数,或者插入数据之前判断是否有重复记录的时候,就需要获取满足条件的MySQL查询的记录数目。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名申请、网页空间、营销软件、网站建设、伊犁网站维护、网站推广。
第一种方法:查询时候直接统计
复制代码
代码如下:
$sql="SELECT
COUNT(*)
AS
count
FROM
TABLE
WHERE
id='$id'";
$result=mysql_fetch_array(mysql_query($sql));
$count=$result['count'];
第二种方法:先取出,后统计
复制代码
代码如下:
$sql="SELECT
*
FROM
TABLE
WHERE
id='$id'";
$result=mysql_fetch_array(mysql_query($sql));
$count=count($result);//或者$count=mysql_num_rows($result);
不过直接使用MySQL的COUNT(*)在数据量庞大的时候,效率的优势是十分显著的,因为后者需要二次计算,所以还是最好使用前者进行数据条数的统计。
统计,就是把基本的数据,整合起来。
用到sql的,有group by 功能,count功能,order by功能等等。
sql将收集的数据,进行统计分析。
一般情况下,sql处理后得到的数据,还要通过php的逻辑来进行整理。
以一定的格式,展示到前台。
一般都是以数组的方式展示,这也是数据结构的概念。
看这张图片,基本想想结构大概为
{上线数,出单总数,核过总数,总人均,总核率,{(坐席人1,工号1,出单数1,发货数1,核单率1),(坐席人2,工号2,出单数2,发货数2,核单率2)}}
如果用php展示成上面的结构的话,就很好处理了。
如果你要达到你说的这种效果,需要对数据库表进行重新设计,你现在这种设计不合理!
如果无法改变数据表的话,就需要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代码里用explore(',',
$son),分割成数组,可以统计,也方便使用各个值,
如果你只是想要个数,可以用substr_count($son,
',')+1,逗号出现的次数加一就是值的个数
其实我感觉你这个逻辑没问题,代码有点问题,我是这么认为的,代码应该是这样
$idzhi = rand(0,表中数据条数);
$data = $data['id']; // 我不明白你这里是什么意思
$arr = $m-where($data = $idzhi)-limit(8) -select();
不过我总感觉上面的有问题
$idzhi = rand(0,表中数据条数);
$arr = $m-where("id = $idzhi")-limit(8) -select();
不对的话就试试这个,我个人觉得这样是对的,不明白你那个$data['id'];是干嘛用的
mysql_connect("localhost","root","123456") or
die("打开数据库服务器失败!"); //连接数据库
mysql_select_db("a") or
die("打开数据库a失败!"); //打开数据库,a为数据库名
$sql = "select id from b"; //id为字段名,b为表名
$result=mysql_query($sql);
if(mysql_query($sql)) //判断$sql语句是否执行
{
$num=mysql_num_rows($result); //取得包含id字段记录的行数
echo "一共有".$num."个id"; }思想就是:根据含有ID的记录(数据库里一行内容称为一条记录)条数来确定ID的个数