[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
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login


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: text
$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')");