Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Evitar insertar registros repetidos repetidos mysql php

Estas en el tema de Evitar insertar registros repetidos repetidos mysql php en el foro de PHP en Foros del Web. Hola amigos soy nuevo y queria ver si me podian ayudar con mi problema les explico un poco: Tengo una tabla con los siguientes campos: ...
  #1 (permalink)  
Antiguo 08/04/2016, 14:41
 
Fecha de Ingreso: abril-2016
Ubicación: Mexico
Mensajes: 5
Antigüedad: 8 años
Puntos: 0
Evitar insertar registros repetidos repetidos mysql php

Hola amigos soy nuevo y queria ver si me podian ayudar con mi problema les explico un poco: Tengo una tabla con los siguientes campos: ID(autoincrementable), Nombre, Ap, Am, Rfc, Tel1, Tel2, Cel1, Cel2; por medio de un formulario se carga un archivo .csv de excel el cual es cargado por medio de mi codigo php ahora lo que necesito es evitar que se inserten registro repetidos y de esto depende el campo Rfc si existe un registro en mi tabla que sea el mismo en mi archivo .csv no subir ese registro Espero me puedan ayudar muchas gracias y un saludo...

Codigo PHP:

Código:
<?php
    
set_time_limit(500);
 extract($_POST);
//conexiones, conexiones everywhere
ini_set('display_errors', 1);
error_reporting(E_ALL);
$db_host = 'localhost';
$db_user = 'user';
$db_pass = 'root';
 
$database = 'aplicacionweb';
$table = '$user';
if (!@mysql_connect($db_host, $db_user, $db_pass))
    die("No se pudo establecer conexión a la base de datos");
 
if (!mysql_select_db($database))
    die("base de datos no existe");
    if(isset($_POST['submit']))
    {
        //Aquí es donde seleccionamos nuestro csv
         $fname = $_FILES['sel_file']['name'];
         echo 'Cargando nombre del archivo: '.$fname.' ';
         $chk_ext = explode(".",$fname);
         
         if(strtolower(end($chk_ext)) == "csv")
         {
             //si es correcto, entonces damos permisos de lectura para subir
             $filename = $_FILES['sel_file']['tmp_name'];
             $handle = fopen($filename, "r");
        
             while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
             {
               //Insertamos los datos con los valores...
                $sql = "INSERT into $user (Nombre, Ap, Am, Rfc, Telefono1, Telefono2, Cel1, Cel2, Tarjeta, Clase, Comentario, Fecha) values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','','','')";
                mysql_query($sql) or die(mysql_error());
             }
             //cerramos la lectura del archivo "abrir archivo" con un "cerrar archivo"
             fclose($handle);
             echo '<script>alert("Asignacion Completa!      |   © StrateggaSystem;   | ")</script> ';
             echo "<script>location.href='javascript:window.history.go(-2);'</script>";
             
         }
         else
         {
            //si aparece esto es posible que el archivo no tenga el formato adecuado, inclusive cuando es cvs, revisarlo para             //ver si esta separado por " , "
             echo '<script>alert("Archivo Invalido!      |   © StrateggaSystem;   | ")</script> ';
             echo "<script>location.href='javascript:window.history.go(-2);'</script>";
         }   
    }
     
    ?>
  #2 (permalink)  
Antiguo 08/04/2016, 15:39
 
Fecha de Ingreso: julio-2014
Mensajes: 179
Antigüedad: 9 años, 8 meses
Puntos: 26
Respuesta: Evitar insertar registros repetidos repetidos mysql php

http://www.forosdelweb.com/f18/preve...os-php-249081/

http://www.forosdelweb.com/f18/evita...lario-1003485/

http://www.forosdelweb.com/f18/evita...mysql-1109336/
__________________
Si haces las cosas como nadie las ha hecho, cobralas bien, si las vas a hacer como todos las han hecho, cobralas bien!!
MecanizandoWeb.com
  #3 (permalink)  
Antiguo 08/04/2016, 15:59
 
Fecha de Ingreso: abril-2016
Ubicación: Mexico
Mensajes: 5
Antigüedad: 8 años
Puntos: 0
Respuesta: Evitar insertar registros repetidos repetidos mysql php

Hola gracias por reponder ya e checado los post pero no resuelven mi problema en los post que me dejaste dice como saber si un registro ya se encuentra dentro de una tabla yo lo que quiero hacer es ingresar datos que no estén repetidos dentro de mi tabla es ingresar datos masivos mi .csv tiene como 10,000 registros y mi tabla como 100.000 registros tiene que evitar que ingresar datos que no estén dentro de la tabla gracias te agradezco mucho! espero me puedan ayudar! :)
  #4 (permalink)  
Antiguo 08/04/2016, 16:02
 
Fecha de Ingreso: abril-2016
Ubicación: Mexico
Mensajes: 5
Antigüedad: 8 años
Puntos: 0
Respuesta: Evitar insertar registros repetidos repetidos mysql php

Cita:
Iniciado por DesgraciadoGabo Ver Mensaje
[url]http://www.forosdelweb.com/f18/prevenir-registros-duplicados-php-249081/[/url]

[url]http://www.forosdelweb.com/f18/evitar-registros-duplicados-formulario-1003485/[/url]

[url]http://www.forosdelweb.com/f18/evitar-registro-duplicado-php-base-datos-mysql-1109336/[/url]
Hola gracias por reponder ya e checado los post pero no resuelven mi problema en los post que me dejaste dice como saber si un registro ya se encuentra dentro de una tabla yo lo que quiero hacer es ingresar datos que no estén repetidos dentro de mi tabla es ingresar datos masivos mi .csv tiene como 10,000 registros y mi tabla como 100.000 registros tiene que evitar que ingresar datos que no estén dentro de la tabla gracias te agradezco mucho! espero me puedan ayudar! :)
  #5 (permalink)  
Antiguo 08/04/2016, 16:11
 
Fecha de Ingreso: julio-2014
Mensajes: 179
Antigüedad: 9 años, 8 meses
Puntos: 26
Respuesta: Evitar insertar registros repetidos repetidos mysql php

Wooooow eso mucha información, lo que se me ocurre es hacerlo directamente en tu tabla con un valor Unique

Espero tus comentarios, saludos!!!
__________________
Si haces las cosas como nadie las ha hecho, cobralas bien, si las vas a hacer como todos las han hecho, cobralas bien!!
MecanizandoWeb.com
  #6 (permalink)  
Antiguo 08/04/2016, 16:43
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Evitar insertar registros repetidos repetidos mysql php

Procesos masivos requieren trabajar a nivel BBDD, la aplicación no te servirá para esas tareas.

Lo mejor es crear una tabla temporal donde cargues los datos del CSV, y luego con un script o un SP en la base, realizar la valdiacion de los datos y las inserciones que correspondan.
Hacerlo en PHP puede traerte problemas de performance.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 08/04/2016 a las 18:56
  #7 (permalink)  
Antiguo 11/04/2016, 09:56
 
Fecha de Ingreso: abril-2016
Ubicación: Mexico
Mensajes: 5
Antigüedad: 8 años
Puntos: 0
Respuesta: Evitar insertar registros repetidos repetidos mysql php

Cita:
Iniciado por DesgraciadoGabo Ver Mensaje
Wooooow eso mucha información, lo que se me ocurre es hacerlo directamente en tu tabla con un valor [URL="http://sqlserverya.com.ar/temarios/descripcion.php?inicio=50&cod=57&punto=51"]Unique[/URL]

Espero tus comentarios, saludos!!!
Muchas gracias de verdad! intente este método y me resulto efectivo gracias

Etiquetas: fecha, formulario, mysql, registro, registros, repetidos, 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 22:58.