PHP: comprobar si existen registros de una consulta MySql

19 comentarios

Condicional muy sencilla en PHP para comprobar si existen registros y capturar el número total de una determinada consulta en la base de datos MySql. Utilizaremos la función mysql_num_rows para contabilizar el número de filas de un query.

En ese caso vamos a comprobar si existe algún usuario de la ciudad de “León” dentro de la tabla usuarios:

$total = mysql_num_rows(mysql_query("SELECT id FROM usuarios WHERE ciudad='León'"));
if($total==0){
    echo 'No hay usuarios';
}else{
    echo 'Hay un total de '.$total.' usuarios';
}

Este post ha sido archivado en PHP.

  • http://angelfqc.host22.com AngelFQC

    Cómo lo hago con MySQLi ¿?
    Gracias

    • http://www.facebook.com/Nick.miken Luis Alberto Corona Martínez

      $con=mysqli_connect(localhost,usuario,password);

      mysqli_select_db($con,basededatos);

      $total = mysqli_num_rows(mysqli_query($con,”SELECT id FROM usuarios WHERE ciudad=’León'”));
      if($total==0){
      echo ‘No hay usuarios';
      }else{
      echo ‘Hay un total de ‘.$total.’ usuarios';
      }

      nota recuerda los string van entre comillas

  • Carlos

    Cuidado si se copia y pega, hay una errata en la segunda línea. La variable “$total” está escrita “$otal”. Si copiáis y pegáis, va a salir SIEMPRE que no hay registros. sólo hay que ponerle la “t” que falta, y funciona a las mi maravillas.

    Un saludo, y gracias por publicar el código.

    • http://www.bufa.es Jorge Maiden

      Gracias Carlos!

  • Hernán

    Muchas gracias por el tutorial, sencillo y directo, me ayudó a resolver un error que hace dias me estaba trayendo dolores de cabeza.
    A pesar de que hay muchos tutoriales en internet, el 80% de lo que hay tiene errores o le dan muchas vueltas al asunto y los que sabemos poco quedamos mas confundidos.
    Muchas gracias Jorge por compartir esto.
    Saludos desde Buenos Aires

  • jimmi

    como llamar esa consulta con js. y el resultado te aparesca en el mismo formulario.ayuda.

  • http://www.gplusmexico.com/ Jose Ignacio

    Hola yo he comprobado este ejemplo a nivel MySQL pero no es tan viable usarlo, genera errores cuando haces muchas consultas en tu BD!!!

  • mauricio

    Gracias dios mio… por encontrar esta pagina así como se encuentra algo que funcione de verdad, también se encuentra mucha basura.. gracias por el código funciona a la perfec…

  • http://e-web.web44.net eweb

    Muy buena aportacion me sirvio , era lo que andaba buscando. les dejo lo siguiente

    y esto es para que los campos no vengan en blanco:

    if(!empty($usuario) &&; !empty($pass) && !empty($nombre) && !empty($email)) {
    }

    saludos

  • Richard

    Hola se que quizas llevan un tiempo de no comentar, soy nuevo en esto de php y mysql. mi duda es algo relacionado e aqui:

    Tengo un campo en mi tabla llamado codigo, la cuestion esta enque lo genero automaticamente osea el valor es COD01, COD02. A SI sucesivamente, puedo generar automaticamente siempre y cuando haya ya datos en la tabla pero como hago cuando la tabla esta vacia y que el primer valor para codigo sea COD01?

  • SPK

    ¿es posible hacer una consulta a mysql sin submit? es para la comparación de campo usuario, si no existe… continúa

  • frank

    gracias por el aporte Jorge me ayudo bastante tu aporte

  • Jabel

    Muchas gracias, justo lo que necesitaba! Me funcionó a la perfección en lo que estoy haciendo!! Muchas gracias!!

  • HOLA

    MEDIO SIENTO QUE ME SERVIRA

  • Elizabeth Buján

    lo he modificado como lo quería y me ha servido de maravilla .. en vez del corto texto que tenías en el ejemplo, tenía que poner una serie de impresiones para formulario. Muchas Gracias!!

  • http://www.bufa.es/ jorgemaiden

    de lujo! gracias por tu comentario

  • Isaac Rosario Duran

    como puedo hacer para que se verifique si existe registro antes de hacer la consulta, osea si se escribe un valor que no existe en la base de datos que de un error de que no ha habido resultado.

  • http://www.bufa.es/ jorgemaiden

    Hola, este post esta algo desfasado, mysql_num_rows aunque sigue funcionando esta ya obsoleto. Ahora es mejor usar count(*), por ejemplo:

    $result = mysql_query("SELECT count(*) as total FROM usuarios  WHERE ciudad='León'");
    $row = mysql_fetch_assoc($result);
    $numero = $row['total'];

    if($numero > 0){
        echo 'Hay '.$numero.' resultados';
    }else{
        echo 'No hay resultados';
    }
    • lupiz

      Me sirvió de maravilla, Gracias :)