Buscador


En todo Internet
En Uterra.Com

Contenidos


 

Uno de los problemas más comunes en el desarrollo Web con bases de datos es el relacionado con los registros duplicados. Evitar los registros duplicados es un problema de la máxima importancia, por ejemplo, cuando estamos creando un sistema de identificación de usuarios registrados.

El problema de los registros duplicados se puede solucionar de diferentes formas. Una de ellas la podemos encontrar directamente en MySQL, aplicando la propiedad UNIQUE al campo que no deseamos que admita registros duplicados. Pero esto, por si solo, es un problema, en el sentido que el usuario completa el registro sin saber que su registro no se ha guardado en la base de datos. Así el nuevo usuario podrá intentar validar su cuenta y acceder sin conseguirlo.

La solución que aquí proponemos es una estructura condicional según la cual, se ejecutan consultas a la base de datos antes de guardar el registro, si el registro no esta guardado, informamos de ello.

 

Aplicando esta lógica, os presento el siguiente código que tiene por función registrar usuarios en una tabla y comprueba que el nombre de usuario sea único y también el e-mail.

 

Sin más, el código es el siguiente:

<?php

/*
    Código fuente desarrollado por UTERRA.COM

    Visita mi web 

        www.uterra.com
*/

include('abre_db.php');

// Configurar las dos lineas siguientes

$nombre $_POST["nombre"];
$email $_POST["email"];
$fecha date("Y-m-d");

// Inicio de validacion

// Fin de la validacion

// Comprobamos si el usuario esta registrado

$nuevo_usuario=mysql_query("select nombre from $tabla where nombre='$nombre'");
if(
mysql_num_rows($nuevo_usuario)>0)
{
echo 
"
<p class='avisos'>El nombre de usuario ya esta registrado</p>
<p class='avisos'><a href='javascript:history.go(-1)' class='clase1'>Volver atrás</a></p>
"
;
}
// ------------ Si no esta registrado el usuario continua el script
else
{
// ==============================================
// Comprobamos si el email esta registrado

$nuevo_email=mysql_query("select email from $tabla where email='$email'");
if(
mysql_num_rows($nuevo_email)>0)
{
echo 
"
<p class='avisos'>La direccion de e-mail ya esta registrada</p>
<p class='avisos'><a href='javascript:history.go(-1)' class='clase1'>Volver atrás</a></p>
"
;
}
// ------------ Si no esta registrado el e-mail continua el script
else
{
$result mysql_db_query("$base_datos","insert into $tabla (nombre,email,fecha) values ('$nombre','$email','$fecha')"); 

include(
'cierra_db.php');

// Confirmamos que el registro ha sido insertado con exito

echo "
<p class='avisos'>Registro insertado con exito</p>
<p class='avisos'><a href='javascript:history.go(-1)' class='clase1'>Volver atrás</a></p>
"
;

// ==============================================

?>