[SOLUCIONADO] Evitar registros duplicados en DB

Iniciado por Only, Julio 01, 2013, 04:28:45 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Julio 01, 2013, 04:28:45 PM Ultima modificación: Marzo 27, 2014, 05:30:16 PM por Expermicid
Hola a todos, espero me puedan ayudar a evitar el registro duplicado del campo email de la tabla usuarios, les dejo el codigo que tengo

Código: php
<?php
include 'header.php';
//recibimos los datos

$masterkey = "WZQ5L6V1";
$nombre = $_POST['nombre'];
$ape_pat = $_POST['ape_pat'];
$ape_mat = $_POST['ape_mat'];
$fecha = $_POST['fecha'];
$email = $_POST['email'];
$password = $_POST['password'];
$master = $_POST['master'];

//campos para verificar que sen correctos
$rmail = $_POST['rep_email'];
$rpass = $_POST['password_rep'];

//damos formato al texto
$nombre = ucwords($nombre);
$ape_pat = ucwords($ape_pat);
$ape_mat = ucwords($ape_mat);

//verificamos que sea pulsado el boton registrar
if (isset($_POST['registrar'])) {

//verificamos que el correo no este registrado en la base de datos


//verificamos que la mster key coincida
if($master == $masterkey){

//verificamos que los correos concidan
if($email === $rmail){

//checamos que los password sean iguales
if($password === $rpass){

//INICIAMOS LA CONEXION
include 'start_connection.php';
$password = md5($password);

//INSERTAMOS LOS DATOS
$query="INSERT INTO usuarios VALUES DISTINCT(null,'". $nombre ."','". $ape_pat ."','". $ape_mat ."','". $fecha ."','". $email ."','". $password ."');";
mysql_query($query);

//redireccionamos
require("registro_correcto.php");    

//CERRAMOS LA CONEXION
include 'close_connection.php';
}
else
{
echo "<p>
<p>
<p>
<p>
<p><div class='row'>
  <div class='small-6 large-centered columns'>
    <div class='panel'>
      <center>
      <h1>:(</h1>
        <h4>Lo sentimos</h4>
        <h4>Las Contraseñas no son iguales</h4>
        <p>Por favor inténtalo de nuevo</p>
        <p><a href='docencia_medica.php'>Regresar</a> </p>
      </center>
    </div>
  </div>
</div>
";
}
}
else
{
echo "<p>
<p>
<p>
<p>
<p><div class='row'>
  <div class='small-6 large-centered columns'>
    <div class='panel'>
      <center>
      <h1>:(</h1>
        <h4>Lo sentimos</h4>
        <h4>Las Correos no son iguales</h4>
        <p>Por favor inténtalo de nuevo</p>
        <p><a href='docencia_medica.php'>Regresar</a> </p>
      </center>
    </div>
  </div>
</div>
";;
}
}
else
{
echo "<p>
<p>
<p>
<p>
<p><div class='row'>
  <div class='small-6 large-centered columns'>
    <div class='panel'>
      <center>
      <h1>:(</h1>
        <h4>Lo sentimos</h4>
        <h4>La Llave Maestra esta equivocada</h4>
        <p>Por favor inténtalo de nuevo</p>
        <p><a href='docencia_medica.php'>Regresar</a> </p>
      </center>
    </div>
  </div>
</div>
";
}
}
else
{
//no se presiono el boton registrar
header("location: no se preciono_boton.php");
}

?>

Hola Only revisa en Mysql sobre UNIQUE! lo que haces es que dicha columna tenga ese valor y ya!

Regards,
Snifer
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Llaman traidor a la persona que evito que caiga el foro, gente bruta!



Lo que puedes hacer primero es SELECCIONAR, o mejor dicho, TRATAR DE SELECCIONAR alguna fila con el valor que no quieres que se repita:

Código: php
<?php
//Codigo
$query = mysql_select('SELECT campo_de_email FROM tabla WHERE campo_de_email = "' . mysql_real_escale_string($email) . '"');
if(mysql_num_rows($query) > 0)
     echo 'Existe';
else
     echo 'No existe';
//Codigo
?>


Saludos,
Xt3mP.
Cada vez que me das Karma me motivas

Gracias a todos por la ayuda , les dejo la forma en que lo consegui

// Comprobamos si el email esta registrado

Código: php
$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>
";
}
// ------------ 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')");