lunes, 12 de marzo de 2012

Php - Validar dato en Mysql


Una de las cosas que tenemos que hacer cuando trabajos con datos en una base de datos, es validar que estos datos existan o no, ya que normalmente programaremos una acción diferente para cada uno de los casos.

Obviamente existe más de una forma para verificar esto, pero aquí mostraré solo algunas de las cuales creo que pueden ser útiles y no ser difíciles de entender.


La primera forma que expondré será validando con mysql_fetch_array, el cual eecupera una fila de resultado como un array asociativo, un array numérico o como ambos. Aquí el ejemplo:

$result = mysql_query("select * from vendedor where idVendedor = '$id' ", $conn)
            or die("Problemas en la comprobación: ". mysql_error());

if($reg= mysql_fetch_array($registry)){
            echo "El registro existe";
}else{
            echo "El registro no existe";

Simplemente es eso, en primer lugar creamos una consulta mysql para intentar rescatar un valor, luego a ese valor le aplicamos el mysql_fetch_array para comprobar si nos devuelve o no un valor. Un ejemplo completo de como ocupar esto sería:

function probando($id){
        $conn = mysql_connect('localhost','root','') or die('Error en la conexión al servidor');
        mysql_select_db("prueba", $conect) or die('Error en la conexión a la base de datos');
        mysql_query("SET NAMES 'utf8'");

        $result = mysql_query("select * from vendedor where idVendedor = '$id' ", $conn)
            or die("Problemas en la comprobación: ". mysql_error());

        if($reg= mysql_fetch_array($registry)){
            echo "El registro existe";
        }else{
            echo "El registro no existe";
       }
}

Otra forma es mediante mysql_num_rows, la forma de utilizarse es muy similar a la forma mostrada anteriormente.

$result = mysql_query("select * from vendedor where idVendedor = $id", $conn)
                or die("Problemas en la query ". mysql_errno());

if(mysql_num_rows($result) == 0){
            echo "El registro no existe";
}else{
            echo 'El registro existe';
}

Como ven, lo que comprobamos es que si lo devuelto es igual a 0, significa que no se obtuvo ningún valor con ese registro, por el contrario si no es igual a 0, significa que encontró un registro con la query realizada. Un ejemplo más completo sería:

function probando($id){
        $conn = mysql_connect('localhost','root','') or die('Error en la conexión al servidor');
        mysql_select_db("prueba", $conect) or die('Error en la conexión a la base de datos');
        mysql_query("SET NAMES 'utf8'");

       $result = mysql_query("select * from vendedor where idVendedor = $id", $conn)
                or die("Problemas en la query ". mysql_errno());

        if(mysql_num_rows($result) == 0){
            echo "El registro no existe";
        }else{
            echo 'El registro existe';
        }
}

0 comentarios:

Publicar un comentario