¿La función mysql_num_rows() no deberías aplicarla sobre $resultado en lugar de la $consulta o por qué haces eso?
Código PHP:
Ver original// MAL
// todo esto que haces es innecesario pues ejecutas el resultado de una consulta como si fuera ¿una consulta?
$resultado = $conexion->query($consulta);
// tampoco hace falta nada de esto
// BIEN
if($resultado) {