Php mysql\u num\u行不工作

Php mysql\u num\u行不工作,php,sql,mysql,Php,Sql,Mysql,这是我的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); 这将正

这是我的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);

正如我所看到的,$q是资源而不是字符串值,因此,$sql1查询将因错误而失败

,正如我所看到的,$q是资源而不是字符串值,因此,$sql1查询将因错误而失败

,因为您的输入不是查询句柄。。。由于您将$q设置为查询句柄,因此应该在mysql_num_rows()中使用它:


因为您的输入不是查询句柄。。。由于您将$q设置为查询句柄,因此应该在mysql_num_rows()中使用它:


如果在实际检索行之前询问行数,数据库可能会返回零或某个中间数。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也必须获取所有行才能进行计数。

如果在实际检索行之前询问行数,数据库可能会返回零或某个中间数。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也必须获取所有行才能对其进行计数。

请重新格式化代码样本以确保其易读性,同时请删除恼怒标记!!!!!!谢谢。你的问题真的有效吗?您在第二次查询后尝试过mysql_error()吗?请重新格式化代码样本以确保易读性,同时请删除恼怒标记!!!!!!谢谢。你的问题真的有效吗?您在第二次查询后尝试过mysql_error()吗?特别是,$q首先用于WHERE子句,然后用于保存资源,然后再次用于另一个WHERE子句。此外,WHERE子句中的值没有被引用。特别是,$q首先在WHERE子句中使用,然后用于保存资源,然后再次在另一个WHERE子句中使用。此外,WHERE子句中的值不被引用。