Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] ¿Como evito que se registren duplicados?

Estas en el tema de ¿Como evito que se registren duplicados? en el foro de PHP en Foros del Web. buenas, necesito la orientación de alguien para que me indique como podría evitar que se registren campos duplicados al enviar datos a mi db con ...
  #1 (permalink)  
Antiguo 04/03/2013, 10:59
Avatar de alfredox91  
Fecha de Ingreso: noviembre-2012
Ubicación: Venezuela-Turmero- Aragua
Mensajes: 17
Antigüedad: 11 años, 5 meses
Puntos: 0
Pregunta ¿Como evito que se registren duplicados?

buenas, necesito la orientación de alguien para que me indique como podría evitar que se registren campos duplicados al enviar datos a mi db con este formulario:

<?php

@$nombre=$_POST['nombre'];

@$CI=$_POST['CI'];

@$telefono=$_POST['telefono'];

@$edad=$_POST['edad'];

@$direccion=$_POST['direccion'];

@$profesion=$_POST['profesion'];

@$trabaja=$_POST['trabaja'];



if ($nombre!= "" && $CI!= "" && $telefono!= "" && $edad!= "" && $direccion!= "" && $profesion!= "" && $trabaja!="");

{

mysql_connect("localhost","prueba","123456");

mysql_select_db("consejo comunal");



mysql_query("INSERT INTO habitantes(nombre,CI,telefono,edad,direccion,profe sion,trabaja) VALUES('$nombre','$CI','$telefono','$edad','$direc cion','$profesion','$trabaja')");


}

?>

intente con algunos metodos pero sin resultado, gracias de antemano a todo aquel que se tome un tiempito para orientarme
  #2 (permalink)  
Antiguo 04/03/2013, 11:08
Avatar de evolutionrgm  
Fecha de Ingreso: mayo-2011
Mensajes: 108
Antigüedad: 13 años
Puntos: 5
Respuesta: ¿Como evito que se registren duplicados?

prueba agregale el rut o DNI .. algo que te identifique entonces antes de hacer el insert haz esto te mandare un ejemplo que yo utilizo , espero que te sirva

Código PHP:
Ver original
  1. <?php
  2. //validacion de repeticion de Campos
  3. $consql="select * from familia where nombre='$id'";
  4. $resulta=mysql_query($consql);
  5. $total_registros = mysql_num_rows($resulta);
  6.      
  7. if ($id == "0" or $id == ""){
  8.                                 $datoscorrectos = false;
  9.     echo "<script>alert('No pueden haber campos vacios/sin seleccionar.');</script>";                                                          
  10.                                         }
  11. if ($datoscorrectos){
  12.     if($total_registros!=0)
  13.     {
  14.             echo "<script>alert('La Familia: $id Se encuentra en Nuestros Registros');</script>";
  15.                     }
  16.     else{
  17. if (isset($_POST['guardar']));{
  18. $sql ="insert into familia (id_familia,nombre) values ($num,'$familia')";
  19.                                 $resultado= mysql_query($sql);
  20.                                 if (!mysql_error()){
  21.                                 echo "<script>alert('El La $familia ha sido Registrado Exitosamente');</script>";                              
  22.                                    
  23.                                 }else{
  24.                                 echo "ERROR al Registrar $familia - ". mysql_errno().":". mysql_error()."<br>";
  25.                                 echo "<script>alert(' ERROR al Registrar $familia');location.href='reg_familia.php'</script>";             
  26.                                
  27.                                 }
  28.                             }
  29.                             }
  30.                         }
  31.                        
  32.     }
  33.                           ?>
  #3 (permalink)  
Antiguo 04/03/2013, 15:14
Avatar de alfredox91  
Fecha de Ingreso: noviembre-2012
Ubicación: Venezuela-Turmero- Aragua
Mensajes: 17
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: ¿Como evito que se registren duplicados?

jaja que despiste el mio, minutos antes de que me respondieras logre corregir el código en el que me base de un tutorial hecho aquí mismo en foros del web y era que me había faltado cerrar una llave ,

Código:
    <?php 

@$nombre=$_POST['nombre']; 

@$CI=$_POST['CI']; 

@$telefono=$_POST['telefono']; 

@$edad=$_POST['edad']; 

@$direccion=$_POST['direccion']; 

@$profesion=$_POST['profesion']; 

@$trabaja=$_POST['trabaja'];  



if ($nombre!= "" && $CI!= "" && $telefono!= "" && $edad!= "" && $direccion!= "" && $profesion!= "" && $trabaja!=""); 

{ 

mysql_connect("localhost","usuario","pass");

mysql_select_db("name db"); 


// Paso 2: Hacemos la consulta a la Tabla por el usuario 
$busqueda= mysql_query("SELECT CI FROM habitantes WHERE CI='$CI'"); 
 
 
// Paso 3: vemos si hubo coincidencias 
if(mysql_num_rows($busqueda)>0) { // ó " !=0 " como se quiera ver 
      // Inciso a:  
      echo "El numero de cedula ya esta registrado. Por favor intente con otro.<br>"; 
      echo "<a href=\"javascript:history.back()\">Regresar</a>"; 
} else 

{ 

mysql_query("INSERT INTO habitantes(nombre,CI,telefono,edad,direccion,profesion,trabaja) VALUES('$nombre','$CI','$telefono','$edad','$direccion','$profesion','$trabaja')"); 

echo "$CI ha sido registrado."; 

} 
}

?>
algo que me falta corregir desde que comencé con el formulario es que me envía datos vacíos a la base de datos nada mas ejecutando la pagina sin yo hacer nada, es decir solo con abrir la pagina ya ejecuta las sentencias de insertar datos sin rellenar los campos y como se hace de forma automática se envían vacíos, cuando le añadí un condicional que supuestamente evita eso de enviar campos vacíos, te deje el código para ver si me puedes decir que causara esto, gracias de antemano
  #4 (permalink)  
Antiguo 05/03/2013, 00:32
 
Fecha de Ingreso: julio-2009
Mensajes: 11
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: ¿Como evito que se registren duplicados?

Recuerde cambiar el tema a "SOLUCIONADO".
  #5 (permalink)  
Antiguo 05/03/2013, 08:15
Avatar de alfredox91  
Fecha de Ingreso: noviembre-2012
Ubicación: Venezuela-Turmero- Aragua
Mensajes: 17
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: ¿Como evito que se registren duplicados?

a ok ya lo marque como solucionado lo que pasa es como aun tengo la duda que comente mas arriba no lo había hecho XD

Etiquetas: formulario, mysql, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:36.