Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: Only en Julio 01, 2013, 04:28:45 PM

Título: [SOLUCIONADO] Evitar registros duplicados en DB
Publicado por: Only en Julio 01, 2013, 04:28:45 PM
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) [Seleccionar]
<?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");
}

?>
Título: Re:[Ayuda]Evitar registros duplicados en DB
Publicado por: Snifer en Julio 01, 2013, 06:23:20 PM
Hola Only revisa en Mysql sobre UNIQUE! lo que haces es que dicha columna tenga ese valor y ya!

Regards,
Snifer
Título: Re:[Ayuda]Evitar registros duplicados en DB
Publicado por: Xt3mP en Julio 03, 2013, 04:58:15 AM
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) [Seleccionar]
<?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.
Título: Re:[Ayuda]Evitar registros duplicados en DB
Publicado por: Only en Julio 04, 2013, 03:52:53 PM
Gracias a todos por la ayuda , les dejo la forma en que lo consegui

// 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>
";
}
// ------------ 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')");