mysql_num_rows() ritorna il numero di record interessati dalla query. Restituisce FALSE solo quando si verifica un errore "grave", tipo tabella o campo inesistente. Secondo me la puoi utilizzare comunque, magari inserendo dei controlli sulla correttezza della query. oppure, visto che sono le 23.54 ho preso un grosso abbaglio?