Foros del Web » Programando para Internet » PHP »

Duda con registros repetidos

Estas en el tema de Duda con registros repetidos en el foro de PHP en Foros del Web. hola Tengo varios formularios y no quiero que se inserten registros repetidos. Tendría que ir comparando campo a campo con la base de datos o ...
  #1 (permalink)  
Antiguo 24/08/2009, 09:42
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Duda con registros repetidos

hola

Tengo varios formularios y no quiero que se inserten registros repetidos.

Tendría que ir comparando campo a campo con la base de datos o hay alguna forma más rápida de hacerlo?

Es que todos los ejemplos que he visto van comparando uno a uno...
  #2 (permalink)  
Antiguo 24/08/2009, 09:59
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Duda con registros repetidos

Como que ir verificando uno a uno. Podrías colocar algun ejemplo de lo que hayas visto.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 24/08/2009, 10:09
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Duda con registros repetidos

Pues más o menos como esto...

http://www.forosdelweb.com/1204551-post154.html
  #4 (permalink)  
Antiguo 24/08/2009, 10:16
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Duda con registros repetidos

Es que en realidad ese el metodo sugerido para evitar que no se dupliquen resultados. Otro metodo que es mas bien para firefox es este http://www.forosdelweb.com/f18/crea-...6/#post2980556
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 24/08/2009, 10:22
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Duda con registros repetidos

A ver, paso mi código:

Código PHP:
<?

$Nif
=$_POST['Nif'];

$a=0;
$b=0;

if (isset (
$_POST['bSinEstudios'])) { $check=$_POST['bSinEstudios'];$a=1;}
if (isset (
$_POST['tituloEstudios'])) { $titulo=$_POST['tituloEstudios'];}
if (isset (
$_POST['especialidad'])) { $especialidad=$_POST['especialidad'];}
if (isset (
$_POST['centro'])) { $centro=$_POST['centro'];}
if (isset (
$_POST['diaIni'])) { $diaInicio=$_POST['diaIni'];}
if (isset (
$_POST['mesInicio'])) { $mesInicio=$_POST['mesInicio'];}
if (isset (
$_POST['anhoInicio'])) { $anhoInicio=$_POST['anhoInicio'];}
if (isset (
$_POST['checkbox'])) { $fFinactual=$_POST['checkbox'];$b=1;}
if (isset (
$_POST['diaFin'])) { $diaFin=$_POST['diaFin'];}
if (isset (
$_POST['mesFin'])) { $mesFin=$_POST['mesFin'];}
if (isset (
$_POST['anhoFin'])) { $anhoFin=$_POST['anhoFin'];}

if(
$a!="1"){
    
$fechaInicio$anhoInicio."-".$mesInicio."-".$diaInicio;
    if(
$b=="1") { 
        
$fechaFtime();
        
$fechaFindate("Y-n-j");
    }
    else{
        
$fechaFin$anhoFin."-".$mesFin."-".$diaFin;
    }
            

        require (
"conexion.php");
                        
                            
                    
// Con esta sentencia SQL insertaremos los datos en la base de datos
                
mysql_query("INSERT INTO estudio (titulo, especialidad, centro) VALUES ('$titulo', '$especialidad', '$centro')");
                
$idEstudiomysql_insert_id();
                
                
mysql_query("INSERT INTO candidatoestudio3 (idEstudio, fechaInicio, fechaFin, nifCandidato) VALUES ('$idEstudio', '$fechaInicio', '$fechaFin','$Nif')");
                
            }
    include(
"estudios.php");
    
?><input type="hidden" value=<?php echo $Nif;?> name="Nif"><?
                        
?>
Tendría que ir parámetro a parámetro comparando o cómo? es que de lo que me has indicado no entiendo nada...
  #6 (permalink)  
Antiguo 24/08/2009, 10:27
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Duda con registros repetidos

Asi como tu haces un insert, me refiero los campos que quieres ingresar, esos campos son los que vas a verificar si existen en la base de datos. Haces un SELECT como en el ejemplo que me diste. Por ejemplo en un insert tienes declarado que vas a insertar titulo, especialidad, centro. Antes de insertar haces un select basado en esos tres campos, si existe información no insertas si no existe informacion insertas. Tambien tienes otro insert que verifica idEstudio, fechaInicio, fechaFin, nifCandidato, antes de hacer ese insert haces un select y verificas si existe información ya con esa información si existe no haces el insert pero sino existe lo haces.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 24/08/2009, 10:31
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Duda con registros repetidos

Vale, pues a eso me refería... que tengo que hacer un select para comparar cada elemento, no?
No existe otra forma que sea más rápida.
  #8 (permalink)  
Antiguo 24/08/2009, 10:33
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Duda con registros repetidos

Otra pregunta...

En un formulario un usuario puede meter un puesto deseado (ej. Camarero), si no existe en la tabla puesto (id, nombre), le inserta, pero si ya existe quiero que coja su id para insertarlo en otra tabla.

Cómo hago eso?
  #9 (permalink)  
Antiguo 24/08/2009, 10:39
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Duda con registros repetidos

La primera pregunta, se podría lograr con sesiones pero sería un poco más complicado explicartelo tendrías que leer sobre sesiones para que entiendas lo que te quiero decir.

Para la segunda con un select coges el id y luego lo colocas a una variable en php, luego haces el insert de ese id.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #10 (permalink)  
Antiguo 24/08/2009, 10:41
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Duda con registros repetidos

Vale. Pues muchas gracias!!!

A lo mejor echo un ojo a lo de las sesiones, es que había mirado un poco por encima y no he entendido mucho...

Sino ya volveré a escribir. GRACIAS!
  #11 (permalink)  
Antiguo 24/08/2009, 10:45
 
Fecha de Ingreso: agosto-2009
Ubicación: Quito
Mensajes: 28
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Duda con registros repetidos

puedes manejarlo directamente con la base de datos, poniendole que sea un campo unico, asi no te deja ingresar duplicados y no tienes que codificar nada..
  #12 (permalink)  
Antiguo 24/08/2009, 10:47
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Duda con registros repetidos

Pero en la base de datos ya tengo puestos los campos correspondientes como clave única y me inserta duplicados...
  #13 (permalink)  
Antiguo 24/08/2009, 10:53
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Duda con registros repetidos

Lo que se refiere guerres es que cada columna la declares como unique
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #14 (permalink)  
Antiguo 24/08/2009, 10:55
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Duda con registros repetidos

que vaya a la base de datos y ponga todas las columnas de cada tabla como unique?
  #15 (permalink)  
Antiguo 24/08/2009, 11:02
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Duda con registros repetidos

Bueno aquellas que no quiere que el dato se repita.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #16 (permalink)  
Antiguo 26/10/2009, 09:58
Avatar de sinai21  
Fecha de Ingreso: octubre-2009
Mensajes: 89
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Duda con registros repetidos

buenas!
tengo un problema para guardar la fecha y hora actual al ingresar la cedula. sucede que si quiero volver a ingresar la misma cedula para guardar la hora de salida ingresando la misma cedula me da error ya que la decula y la fecha actual no deben de repetirse. este es mi codigo le agradeceria que por favor me ayudara:

Código PHP:

$conec_serv 
mysql_connect("localhost","admin","");
        if (!
$conec_serv) { // Si la Conexion  Falla
            
echo("<p>No es Posible Establecer Conexión con el Servidor.</p>");
            exit();
        }     
        
        if (!@
mysql_select_db("contraloria",$conec_serv)){ //Se conecta con la Base de Datos
            
echo("<p>No es Posible Establecer Coneccion con la Base de Datos.</p>");
            exit();
        }
        
        
$fecha2=time()-3600;        
$UsuarioFechadate('Y/m/d'); 
$h_entradadate('H:i:s',$fecha2);    
$h_salidadate('H:i:s',$fecha2);    
$cedula=$_POST['cedula'];        



$selec_tabla=("select contraloria from asistencia where UsuarioFecha=$UsuarioFecha and cedula=$cedula and  h_entrada=$h_entrada");
$selection=mysql_query($selec_tabla);


if(
mysql_num_rows($selection)==0){

$insert=("insert into asistencia(UsuarioFecha,cedula,h_entrada) values('$UsuarioFecha','$cedula','$h_entrada')"); //Ejecuta el Query en la Base de Datos
$result_entrada=mysql_query($insert) or die(mysql_error());

            echo 
"Asistencia aceptada";
            exit();
        } else{    
        
                        
$select_verificar=("select contraloria count(*) as result from asistencia where cedula=$cedula and UsuarioFecha=$UsuarioFecha");
$result_salida=mysql_query($select_verificar);


        if (
$result_salida["result"]>0){
        
$guardar_salida=("update asistencia set h_salida='$h_salida' where cedula=$cedula and UsuarioFecha=$UsuarioFecha");
                 die(
"Not connected : " mysql_error() );
                 echo(
"<p>BUENAS TARDES</p>");
                 
mysql_close($conec_serv);
            } 
        
/*header ("Location: control_hora.php"); 
exit;     */ # POR FAVOR NO SE COMO VOLVER A MI FORMULARIO
}        
?> 
  #17 (permalink)  
Antiguo 26/10/2009, 10:14
Avatar de sinai21  
Fecha de Ingreso: octubre-2009
Mensajes: 89
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Duda con registros repetidos

me da el siguiente error:


Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\p_s_contraloria\insertar_asistenci a.php on line 36
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 00:46.