可能重复:
Whats the best way to get total # of records in a mysql table with php?Mysql的计数表中的行并返回一个整数
当我运行:
mysql_query("SELECT COUNT(col) FROM table");
我最终是这样的:
(资源)的MySQL结果#4
我怎么只能获得代表行的数量我的表中,这样以后我可以用它来制作一个simpel检查,如一个整数:$结果< 10 。
非常感谢
可能重复:
Whats the best way to get total # of records in a mysql table with php?Mysql的计数表中的行并返回一个整数
当我运行:
mysql_query("SELECT COUNT(col) FROM table");
我最终是这样的:
(资源)的MySQL结果#4
我怎么只能获得代表行的数量我的表中,这样以后我可以用它来制作一个simpel检查,如一个整数:$结果< 10 。
非常感谢
您有两种选择。
由count查询返回的资源得到结果:
$resource = mysql_query("SELECT COUNT(col) FROM table");
$count = mysql_result($resource,0);
或者,由查询(不计)返回的资源获取的行数。
$resource = mysql_query("SELECT col FROM table WHERE col IS NOT NULL");
$count = mysql_num_rows($resource);
我会建议您使用第一个,原因是当您只需要计数时无需从表中提取所有数据。
注我已经为了重建的count(col)
的效果,而不是count(*)
,因为它只会算col
非空值在第二个加WHERE col IS NOT NULL
。
那些可能不会相同。 'count(col)'只会计算col的非空值,而第二个会计算总行数。 –
@DorShemer这是真实的 - 更新以在末尾添加“IS NOT NULL” –
感谢球员,让它工作! – silkAdmin
mysql_query
返回一个MySQL的资源。为了得到查询输出使用:
$result = mysql_query("SELECT COUNT(col) FROM table");
if (!$result) {
die('Error:' . mysql_error());
}
echo mysql_result($result, 0);
在这里看到更多的例子:http://php.net/manual/en/function.mysql-query.php
编辑
顺便说一句,这只会在一个非空值计算行数col
。要获得表格中的总行数,请使用count(*)
两个选项。
SELECT COUNT(*)......
执行正常查询。并在检索资源后添加此行。
$num = mysql_num_rows($resource);
表是一个MySQL的保留字。使用反引号(')来引用名称或重命名该表。 – Devart
@Devart考虑到OP在这里也使用'col'作为列名,我会想象这些词的用法就是例子。 –