mysql_num_rows始终返回1

问题描述:

似乎num_rows变量是1,不管是什么... 我是否正确使用此功能?mysql_num_rows始终返回1

//get the oldest review date still open 
    $check_sql = "SELECT max(review_date) as max_date" 
     . " from employee_reviews" 
     . " WHERE review_status = '0' and emp_no = '" . [v_emp_no] . "'"; 
    // run query against database 
    $oldest_review_open = mysql_query("$check_sql"); 
    // retrieve a count of the rows in the previous query 
    $num_rows = mysql_num_rows($oldest_review_open); 
    echo $num_rows; 

挠头....

在此先感谢

+0

什么是你想找回?您要求从表格中获取最新的审核日期,因此只会返回一行。 – andrewsi

+0

'mysql _ *()'不推荐使用,SQL注入,yada,yada ... – AbraCadaver

+0

每个人的'max'都是唯一的,每个人都有1个最大值,这就是你要求的mysql,这就是它让你回来。也许你想''GROUP_ emp_no'在'和emp_no = ...'的地方# – CodeBird

您使用的是积累功能,这个功能是无论多少行怎么算只返回一行。

你可以检查一遍:

$check_sql = "SELECT review_date" 
     . " from employee_reviews" 
     . " WHERE review_status = '0' and emp_no = '" . [v_emp_no] . "'"; 
+0

没有我目前只影响一个单一的员工..但在表中只有1名员工的记录,当我输入另一名员工仍然是返回num_rows = 1 –

+0

这是因为当您使用MAX时,即使表格中有多行,也总是会返回一行。 mysql_num_rows返回查询中行数为1的情况。 –