计算表中的特定行

时间:2013-01-14 16:37:08

标签: php mysql count

您好我正在尝试计算特定行大于0的表。 如果table(requests)的行(rq_stamp)大于0,则应该对其进行计数/选择。

这是我到目前为止所得到的但我总是得到1.($ num_rows总是1)。

    $rq_notice = mysql_query("SELECT * FROM requests WHERE rq_poster = '$rq_notice_user' HAVING COUNT(rq_stamp) > 0 ") or die(mysql_error());   
if(mysql_num_rows($rq_notice) > 0 )
{
    $num_rows = mysql_num_rows($rq_notice);
    echo $num_rows;
}

感谢您提供的任何帮助,如果之前已经回答了问题,我很抱歉,但是当我搜索时我找不到它。

2 个答案:

答案 0 :(得分:0)

通过使用COUNT(),您将在查询中引入一个似乎没有必要的聚合。如果您只是想确定rq_stamp的值是否大于0,请执行以下操作:

SELECT * FROM requests WHERE rq_poster = '$rq_notice_user' AND rq_stamp > 0 

答案 1 :(得分:0)

我认为你确实误解了伯爵的作用;)

您在这里写的是一个查询。换句话说,您正在发送搜索数据的人。您将得到的就是您在SELECT部分​​中定义的内容。

如果按特定列分组,则可以使用Count。你可以在这里f.e.在存储照片及其上传者的表格上设置查询。使用 count ,您现在可以为每个上传者获取大量上传的照片。更多示例:http://dev.mysql.com/doc/refman/5.1/en/counting-rows.html

我想你想做这样的事情:

SELECT * FROM requests WHERE rq_poster = '$rq_notice_user' AND rq_stamp > 0 

只需获取海报为X且时间戳为>的所有请求。 0.使用PHP,您现在可以检查收集了多少行,并且可以使用mysql_query获取行。 http://php.net/mysql_query

但请使用mysqli或PDO而不是mysql。我在这里只是谈论你在PHP中使用的函数。从PHP 5.5开始,不推荐使用PHP扩展mysql,你不应该使用现在已经知道的东西。如果你问,为什么它被弃用:http://de2.php.net/manual/en/faq.databases.php#faq.databases.mysql.deprecated