这是我的PHP代码
$sql="SELECT * FROM table_name WHERE FROM_UNIXTIME(date, '%Y') = $q order by id desc";
$q = mysql_query($sql) or die(mysql_error().$sql);
$sql1="SELECT * FROM table_name WHERE FROM_UNIXTIME(date, '%Y') = $q";
$query=mysql_query($sql1);
正确收集结果(一切正确)
但是当我使用它计算总结果时它没有给我任何东西,但是我有例如3个结果:
$total = mysql_num_rows($query);
答案 0 :(得分:3)
因为您的输入不是查询句柄...因为您将$ q设置为查询句柄,所以您应该在mysql_num_rows()中使用它:
$total = mysql_num_rows($q);
答案 1 :(得分:1)
我可以看到$ q是资源而不是字符串值,因此$ sql1查询将失败并显示错误
答案 2 :(得分:1)
如果在实际检索行之前询问行数,则数据库可能返回零或某个中间数。对于Oracle和MySQL来说都是如此(不知道MSSQL,但我怀疑它是一样的)。来自PHP文档:
Note: If you use mysql_unbuffered_query(), mysql_num_rows()
will not return the correct value until all the rows in the
result set have been retrieved.
即使对于缓冲查询,PHP也必须获取所有行才能计算它们。