Well ... it shouldn't really matter too much. You would have to assume that it would be near impossible that your query where username = x and password = y would return more than one result.
But let's just say that by some strange situation, you had two users with the same username and password. Maybe a double submit, or a manual entry or something. mysql_num_rows() would equal 2 (or more), so the code would see that it doesn't equal one, therefore treat it the same as if there were no matches.
But there WERE matches.
So I guess it;s just a logic thing. It's the difference between saying, "do this if exactly one result is returned", and "do this if any result is returned".
And I could go on and on here about arrays for you, but I couldn't really tell you anything any clearer than the manual can.
What I will say is that array's can seem odd at first, but if you take a look at the examples ... replicate a few ... and soon you'll be using them everywhere. They can just be a bit tricky to grasp, that's all.
Have a read and re-read of the manual page and then if you still are baffled, post back and we'll see what we can add.
Cheers
