Foros del Web » Programando para Internet » PHP »

Que hacer cuando encuentra dos registros iguales

Estas en el tema de Que hacer cuando encuentra dos registros iguales en el foro de PHP en Foros del Web. Tengo una duda en un script que agrega resultados de carreras. Lo que hace es tomando las líneas buscar los registros que tengan el nombre ...
  #1 (permalink)  
Antiguo 18/05/2013, 09:14
 
Fecha de Ingreso: enero-2012
Mensajes: 88
Antigüedad: 12 años, 2 meses
Puntos: 1
Que hacer cuando encuentra dos registros iguales

Tengo una duda en un script que agrega resultados de carreras. Lo que hace es tomando las líneas buscar los registros que tengan el nombre y los apellidos iguales y los graba en la tabla de resultados, el caso es que me ha surgido una duda, ya que lo que hace es que cuando encuentra un registro que cumpla las condiciones lo agrega, pero ¿y si hay dos o más corredores con el mismo nombre o que empiecen igual? ¿Cómo podría solucionar eso?

Código PHP:
    $carrera $_POST['carrera'];
    
$clasi $_POST['clasificacion'];
    
$cate $_POST['categoria'];
    
$clasi2 utf8_decode($clasi);
    
$linea strtok ($clasi2,"\n");
    
    
$sqlcarrera "SELECT nombre,fecha_inicio FROM nuke_calendario_ciclocross WHERE id='$carrera'";
    
$resultcarrera mysql_query($sqlcarrera);
    list(
$nomcarrera,$fecha) = mysql_fetch_row($resultcarrera);
    

    
    echo
"carrera: $nomcarrera";
    if (
$cate == 1) echo"Elite";
    if (
$cate == 2) echo"Sub23";
    if (
$cate == 3) echo"Junior";
    if (
$cate == 4) echo"Cadete";
    echo
"<br><br>";
    
        while (
$linea != false) {
        
        list( 
$datos$tiempo ) = explode" - "$linea );
        list( 
$pos$name ) = explode" " $datos 2);
        list( 
$apellidos$nombre ) = explode"," $name );
        
        
$sqlciclista "SELECT id FROM nuke_feminas_cc WHERE nombre LIKE '".$nombre."%' AND apellidos LIKE '".$apellidos."%'";
        
$resultciclista mysql_query($sqlciclista);
        if(list(
$cid) = mysql_fetch_row($resultciclista)) $nex=0;
        else 
$nex=1;
        
        if (
$nex == 0) {
            
$contador++;
            if (
$cate == 1$sqlinsert ="INSERT INTO nuke_resultados_fem_ciclocross (rid,cid,pos,fecha,tiempo) VALUES ('".$carrera."' , '".$cid."' , '".$pos."' , '".$fecha."' , '".$tiempo."')";
            if (
$cate == 2$sqlinsert ="INSERT INTO nuke_resultados_fem_sub23_ciclocross (rid,cid,pos,fecha,tiempo) VALUES ('".$carrera."' , '".$cid."' , '".$pos."' , '".$fecha."' , '".$tiempo."')";
            if (
$cate == 3$sqlinsert ="INSERT INTO nuke_resultados_fem_junior_ciclocross (rid,cid,pos,fecha,tiempo) VALUES ('".$carrera."' , '".$cid."' , '".$pos."' , '".$fecha."' , '".$tiempo."')";
            if (
$cate == 4$sqlinsert ="INSERT INTO nuke_resultados_fem_cadete_ciclocross (rid,cid,pos,fecha,tiempo) VALUES ('".$carrera."' , '".$cid."' , '".$pos."' , '".$fecha."' , '".$tiempo."')";
            
$resultinsert mysql_query($sqlinsert);
            }
        else { echo
"ERROR: El ciclista clasificado ".$pos.", ".$nombre." ".$apellidos." no existe en la base de datos<br>"$errores++; }
        
        
        
//echo"$nombre<br>";
        
        
        
$linea strtok("\n");
        }
    echo
"A&ntilde;adidos $contador resultados"
  #2 (permalink)  
Antiguo 20/05/2013, 01:26
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 6 meses
Puntos: 331
Respuesta: Que hacer cuando encuentra dos registros iguales

¿y si hay dos o más corredores con el mismo nombre o que empiecen igual? ¿Cómo podría solucionar eso? es tu propio sistema, tendrás que implementar la lógica adecuada que se adapte a tu situación, no hay una respuesta "predeterminada".
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 20/05/2013, 05:58
 
Fecha de Ingreso: octubre-2012
Mensajes: 55
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Que hacer cuando encuentra dos registros iguales

¿No tienes una id propia para cada campo?, lo primero que tienes que tener es bien estructurada tu base de datos.

Perdona si no he entendido tu pregunta.
  #4 (permalink)  
Antiguo 20/05/2013, 10:09
 
Fecha de Ingreso: julio-2010
Mensajes: 275
Antigüedad: 13 años, 8 meses
Puntos: 21
Respuesta: Que hacer cuando encuentra dos registros iguales

No has validado ni verificado la Primera Forma Normal...

Etiquetas: encuentra, iguales, mysql, registro, registros, resultados, select, sql, tabla
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 04:57.