>mysql_result()などを使うと、存在しない場合はエラーが出てしまいます(存在しない行を参照するため)
fetchでぶんぶん回すのが一般的じゃね?
イテレーターのインターフェースだとカウントなんて基本考えない。
(postgresだが、石井さんの本にも確かカウント数えるのにぶんぶん回して$i++とかやってるのあったよーな。)

ほんとにレコード数が欲しいだけなら、SQLのcount()を使う。
(と、いう事を覚えておけば、ORMとか見ると合点いくところあるんじゃないかねぇ?)