Validar datos en base de datos

Tengo un problemita con un formulario los datos ingresan bien a la base de datos esta todo prefecto pero el problema es que hay usuarios que se registran más de 2 veces lo que quiero hacer es que cuendo se registre le salga un mensaje de que su cedula ya esta registrada y su email.
No se si tiene un ejemplo o algo

3 Respuestas

Respuesta
1
Lo más practico es hacerlo con ajax y seria en un campo de la tabla que sea único en la base de datos ejemplo la cedula entonces cuando el usuario coloque la cedula en el campo de texto la función de ajax revise si la cedula existe y te envíe los datos asociados como nombre y apellido en un alert de javascript y te borre los datos del form o te envíe a otra página para loguearte.
Se puede hacer sin ajax directamente con php pero deberías realizar la validación al momento de ingresar los datos osea en el script antes de realizar el insert.
Dime por cual de las dos maneras lo quieres hacer, ambas son fáciles y te explico como
saludos
Seria con ajax aunque ya tengo algo adelantado gracias
Revisa este código te puede servir:
Este es mi input donde introduce el numero de cedula del usuario
?<input id="tblknit" name="tblknit" class="medium text element" type="text" maxlength="255" value="" onChange="pedirDatos(this);"/>
mi codigo ajax que se puede colocar dentro de la misma pagina donde esta el formulario
<SCRIPT LANGUAGE="javascript">
    function pedirDatos(obj){//por medio de ajax buscamos los datos del cliente si existe
        var num = $("#tipo_cliente").attr("value");//o document.getElementById
        if(obj.value!= ""){        
            var ajax=getAjax();
            if(ajax!=null){
                   var pagina="php/ajax1.php?Nit="+obj.value;//pag a la que quiero ir a buscar //lkos datos
                    ajax.open("GET", pagina, false);//metodo para traer los datos
                   ajax.send(null);
                   //aca va la sentencia que convierte el string php a un objeto ajax
                var datos =eval('('+ajax.responseText+')');
                if(datos.error){
                    alert('error');
                }else{
                    if(datos.nombre != ''){
                        alert('el nit ya existe, esta asociado al usuario: '+datos.nombre+', Cree un nuevo usuario');                        
                        if(num=='1'){
                            $("#tblknit").val('');//borramos si existe en el input para que digite de nuevo
                            $('#tblknit').focus();
                         //o lo mandas a otra pagina
                        }
                        if(num=='2'){
                            $("#tblknit1").val('');
                            $('#tblknit1').focus();
                        }
                    }                        
                }
            }
        }//cierra el if de entrada obj.value != -1
    }
    function getAjax(){
        var xmlHttp=null;
        try{
            // Firefox, Opera 8.0+, Safari
            xmlHttp=new XMLHttpRequest();
        }catch (e){
                  // Internet Explorer
            try{
                xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
            }catch (e){
                try{
                    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
                }catch (e){
                    alert("su navegador no soporta  AJAX!");
                    return null;
                }
            }//catch microsift
        }//catch msxml2
        return xmlHttp;
    }            
</SCRIPT>
pagina php donde buscamos los datos es sencillo
<?
include("global.php");//conexion a la database
$nit=$_GET['Nit'];// este parametro es pasado desde la funcion getajax por medio del metodo get
$array=$gCDB->TraerRegistoArray("SELECT id_cliente, nombre FROM cliente where nit = $nit");//buco el registro si existe
$id = $array['id_cliente'];
$nom = $array['nombre'];
echo "{error:false, id_cliente:'$id', nombre:'$nom'}";//envio los datos si existe
// no puede ir nada de codigo html ni nada de codigo ejecutable por que se daña el envio
?>
Respuesta
1
Aquí tienes un ejemplo:
http://www.scourdesign.com/articulos/tutoriales/php/tutoriales-php-mysql-sistema-usuarios-3.php
Respuesta
-1
Lo que tienes que hacer antes de hacer el INSERT en la BBDD, hacer un SELECT con los datos que quieres evitar que estén duplicados, por ejemplo, si tu tabla se llama 'usuario' y tienes un campo 'email', en el registro harías algo parecido a:
$query = mysql_query('SELECT * FROM usuario WHERE email = ' . $_POST['email']);
if (mysql_num_rows($query) >= 1) {
// El usuario con este email ya está insertado en la BBDD
}
(Este es un ejemplo muy básico y deberías pulir un poco más el código para evitar Inyecciones SQL y tomar las precauciones necesarias, pero básicamente ya pillas la idea...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas