2012-01-26 49 views
0

可能重复:
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 。

非常感谢

+0

表是一个MySQL的保留字。使用反引号(')来引用名称或重命名该表。 – Devart

+0

@Devart考虑到OP在这里也使用'col'作为列名,我会想象这些词的用法就是例子。 –

回答

6

您有两种选择。

由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

+0

那些可能不会相同。 'count(col)'只会计算col的非空值,而第二个会计算总行数。 –

+0

@DorShemer这是真实的 - 更新以在末尾添加“IS NOT NULL” –

+0

感谢球员,让它工作! – silkAdmin

3

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(*)

0

两个选项。

  1. SELECT COUNT(*)......

  2. 执行正常查询。并在检索资源后添加此行。

    $num = mysql_num_rows($resource); 
    
相关问题