Why num_rows giving two different result?

Hi,
I am little bit confuse with the result of num_rows that i used in my code.
My table invoice have no value in current because i want to check if no value in the table.
Here is my code
code 1 gives $rowc value as 0 that is correct.


$fetch1="select * from invoice";
$val1=$con->query($fetch1);
$rowc=$val1->num_rows;
echo $rowc;

Code 2 gives $rowc value as 1 that is incorrect.


$fetch1="select max(id) as id, order_no from invoice";
$val1=$con->query($fetch1);
$rowc=$val1->num_rows;
echo $rowc;

I just want to know why the result giving two different values.
Thanks

Apparently because MAX() returns a null if no matching rows are found, rather than returning no rows. See here: http://stackoverflow.com/questions/7545766/why-does-this-query-return-a-row-with-nulls