3 de febrero de 2012

PHP: Contar las filas de una consuta en MySQL

Logotipo de Mysql


Cuando estamos estamos programando en PHP, podemos encontrarnos en la situación de necesitar saber si una consulta es válida o no. Hay varias maneras de controlas esa situación, hoy os voy a mostrar como hacerlo contado las filas que devuelve dicha consulta.

Os pongo un ejemplo para que os sea más claro el objetivo de este tutorial:

Nos encontramos con un formulario en el que el usuario debe introducir una localidad y debemos controlar si esa localidad introducida por el usuario existe en los registro de nuestra Base de Datos MySQL.

Para controlar que la localidad existe en nuestra tabla de municipios, podemos hacer una consulta a la base de datos de esta manera:



Almacenamos el municipio que nos llega del formulario por método POST en la variable $municipio:

$municipio=$_POST['muncipio'];

Almacenamos en la variable $resultado la tabla resultante de la consulta que nos va a dar los municipios que se llaman como la variable recogida.

$resultado=mysql_query("SELECT * FROM municipio WHERE municipio=$municipio");

En la variable resultado solo podrán darse dos casos:

1. Que la variable $resultado este vacía, como consecuencia de que $municipio no sea un municipio registrado en la tabla municipio de nuestra Base de Datos MySQL.
2. Que la variable $resultado tenga una tabla de una sola fila, como consecuencia de que $municipio sea un municipio que si este registrado en nuestra base de datos.

Así que si pudiéramos contar el número de filas que almacena  la variable $resultado  podríamos hacer una condición que nos permitiera realizar acciones distintas si la variable $resultado es válida o no.

La función de PHP mysql_num_rows nos devuelve la el numero de filas que contiene una consulta.

$numero_de_filas=mysql_num_rows($resultado);

Con esta función hemos almacenado en la variable $numero_de_filas el número de filas de la variable $resultado, valga la redundancia.

Por lo que ya podemos hacer un control de errores del flujo del script PHP:

                                    if ($numero_de_filas==1)
                                         {
                                                 echo "El municipio $municipio existe en la base de datos";
                                          }
                                    else
                                                echo "El municipio $municipio no existe en la base de datos";

De esta manera realizamos un control de errores fácil y sencillo.

No hay comentarios:

Publicar un comentario