在需要输出网站用户注册数,或者插入数据之前判断是否有重复记录的时候,就需要获取满足条件的MySQL查询的记录数目。
创新互联长期为上千多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为周口企业提供专业的网站设计制作、成都网站设计,周口网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。
第一种方法:查询时候直接统计
复制代码
代码如下:
$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(*)在数据量庞大的时候,效率的优势是十分显著的,因为后者需要二次计算,所以还是最好使用前者进行数据条数的统计。
SELECT xx1,COUNT(xx1) AS c FROM 表名 GROUP BY xx1 ORDER BY c DESC
使用COUNT结合GROUP BY去查询,得到的结果再进行排序即可。这样不需要用到PHP,只要一个SQL语句就搞定了。
$conn
=
mysql_connect('localhost','root','123');
mysql_select_db('db_name');
//数据库名
mysql_query('set
names
utf8',$conn);
#$res
=
mysql_query('select
count(*)
from
user',$conn);
//统计user表里总共有多少条数据
#$res
=
mysql_query('select
*
from
user',$conn);
//把user里面的数据全部显示出来
$arr
=
array();
while($data
=
mysql_fetch_assoc($res))
{
$arr[]
=
$data;
}
print_r($arr);
可以依次把上面查询语句前面的注释去掉查看效果
其实我感觉你这个逻辑没问题,代码有点问题,我是这么认为的,代码应该是这样
$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'];是干嘛用的
用sql查询语句就能实现 例如 你的表名叫student 里面的性别字段是sex
查询男生有多少人
select count(*) as c from student where sex='男'
查询女生有多少人
select count(*) as c from student where sex='女'
然后在php里用MySQL_fetch_row就能得出结果了