Foros del Web » Programando para Internet » PHP »

Evitar Duplicidad en Carga Excel

Estas en el tema de Evitar Duplicidad en Carga Excel en el foro de PHP en Foros del Web. Buenas Tardes, gracias por leer mi post Tengo esta funcion con algunas validaciones, y debo evitar duplicidad de informacion por Rif y evitar duplicidad de ...
  #1 (permalink)  
Antiguo 21/03/2013, 11:06
 
Fecha de Ingreso: diciembre-2008
Ubicación: http://www.solucionesrios.tk/
Mensajes: 413
Antigüedad: 15 años, 3 meses
Puntos: 19
Busqueda Evitar Duplicidad en Carga Excel

Buenas Tardes, gracias por leer mi post

Tengo esta funcion con algunas validaciones, y debo evitar duplicidad de informacion por Rif y evitar duplicidad de correos

Sucede que me duplica la info aun y con las validaciones, me podrian ayudar a evitarlo? gracias

Código PHP:
function agregar_excel($archivo$hostname_origen$username_origen$password_origen$database_origen )
{
    
$origen mysql_connect($hostname_origen$username_origen$password_origen) or trigger_error(mysql_error(),E_USER_ERROR);  
mysql_select_db ($database_origen) or die ("Problem with database: " mysql_error() . " ," __FILE__ );
    
// Test CVS
    
@require_once ('clases/excel/Excel/reader.php');
    
    
set_time_limit(0);
    
$data = new Spreadsheet_Excel_Reader();
 
    
$data->setOutputEncoding('CP1251');
    
$data->read("excel/".$archivo);

    
    
/*
    1     -> ESTADO
    2     -> CIUDAD
    3     -> RIF
    4     -> NOMBRE
    5     -> CORREO
    6     -> TELEFONOS
    7     -> WEB
    8     -> CONTACTO
    9     -> ACTIVIDAD
    10     -> DIRECCION
    */
    
    
$data = new Spreadsheet_Excel_Reader();

    
// Set output Encoding.
    
$data->setOutputEncoding("CP1251");

    
$data->read("excel/".$archivo);

    
$respuesta = array();
    
$prerespuesta = array();
    echo 
"<table border='1'>";
    for (
$i 1$i <= $data->sheets[0]['numRows']; $i++) {
        echo 
"<tr>";
        if (
$i != 1)
        {
            
$totalRows_rif 0;
            
$totalRows_correos 0;
            
$totalRows_correos2 0;
            for (
$j 1$j <= $data->sheets[0]['numCols']; $j++) {
                
                if (
$j == 1)
                {
                    
//Estado
                    
echo "<td>".$prerespuesta[$i]['ESTADO'] = $data->sheets[0]['cells'][$i][$j]."</td>";    
                }
                if (
$j == 2)
                {
                    
//Ciudad
                    
echo "<td>".$prerespuesta[$i]['CIUDAD'] = $data->sheets[0]['cells'][$i][$j]."</td>";
                }
                if (
$j == 3)
                {
                    
mysql_select_db($database_origen$origen);
                    
$query_rif "SELECT * FROM empresas WHERE RIF = '".$data->sheets[0]['cells'][$i][$j]."'";
                    
$rif mysql_query($query_rif$origen) or die(mysql_error());
                    
$row_rif mysql_fetch_assoc($rif);
                    
$totalRows_rif mysql_num_rows($rif);
                    
//Rif
                    
echo "<td>".$prerespuesta[$i]['RIF'] = $data->sheets[0]['cells'][$i][$j]."</td>";
                }
                if (
$j == 4)
                {
                    
//Nombre
                    
echo "<td>".$prerespuesta[$i]['NOMBRE'] = $data->sheets[0]['cells'][$i][$j]."</td>";
                }
                if (
$j == 5)
                {
                    
mysql_select_db($database_origen$origen);
                    
$query_correos "SELECT * FROM empresas WHERE `CORREO 1` = '".$data->sheets[0]['cells'][$i][$j]."'";
                    
$correos mysql_query($query_correos$origen) or die(mysql_error());
                    
$row_correos mysql_fetch_assoc($correos);
                    
$totalRows_correos mysql_num_rows($correos);

                    
mysql_select_db($database_origen$origen);
                    
$query_correos2 "SELECT * FROM correos WHERE correo = '".$data->sheets[0]['cells'][$i][$j]."'";
                    
$correos2 mysql_query($query_correos2$origen) or die(mysql_error());
                    
$row_correos2 mysql_fetch_assoc($correos2);
                    
$totalRows_correos2 mysql_num_rows($correos2);
                    
//Correo
                    
echo "<td>".$prerespuesta[$i]['CORREO'] = $data->sheets[0]['cells'][$i][$j]."</td>";

                }
                if (
$j == 6)
                {
                    
//Telefonos
                    
echo "<td>".$prerespuesta[$i]['TELEFONO'] = $data->sheets[0]['cells'][$i][$j]."</td>";
                }
                if (
$j == 7)
                {
                    
//Web
                    
echo "<td>".$prerespuesta[$i]['WEB'] = $data->sheets[0]['cells'][$i][$j]."</td>";
                }
                if (
$j == 8)
                {
                    
//Contacto
                    
echo "<td>".$prerespuesta[$i]['CONTACTO'] = $data->sheets[0]['cells'][$i][$j]."</td>";
                }
                if (
$j == 9)
                {
                    
//Actividad
                    
echo "<td>".$prerespuesta[$i]['ACTIVIDAD'] = $data->sheets[0]['cells'][$i][$j]."</td>";
                }
                if (
$j == 10)
                {
                    
//Direccion
                    
echo "<td>".$prerespuesta[$i]['DIRECCION'] = $data->sheets[0]['cells'][$i][$j]."</td>";
                }
                
            }
            if (
$totalRows_rif != 0)
            {
                if  ((
$totalRows_correos == 0) && ($totalRows_correos2 == 0))
                {
                    
//Grabo el correo dentro del Rif de la Empresa
                    
echo "<td>Correo Añadido a Empresa Encontrada</td>";
                    
$respuesta[$i] = $prerespuesta[$i];    
                    
$query1 "INSERT INTO `".$database_origen."`.`correos`
                    (`empresa`,
                    `correo`)
                    VALUES
                    ('"
.$row_rif['ID']."',
                     '"
.$respuesta[$i]['CORREO']."');";
                } 
                else 
                {
                    echo 
"<td>Datos Ignorados por Repetición</td>";
                }
            } 
            else 
            {
                if  ((
$totalRows_correos == 0) && ($totalRows_correos2 == 0))
                {
                    
//Grabo la empresa en su totalidad    
                    
echo "<td>Empresa Añadida</td>";
                    
$respuesta[$i] = $prerespuesta[$i];
                    
$query1 "INSERT INTO `".$database_origen."`.`empresas`
                            (`ESTADO`,
                            `CIUDAD`,
                            `NOMBRE DE LA EMPRESA`,
                            `CORREO 1`,
                            `CORREO 2`,
                            `TELEFONOS`,
                            `PAGINA WEB`,
                            `PERSONA DE CONTACTO`,
                            `actividad`,
                            `activo`,
                            `fecha`,
                            `RIF`,
                            `direccion`)
                            VALUES
                            (
                            '"
.$respuesta[$i]['ESTADO']."',
                            '"
.$respuesta[$i]['CIUDAD']."',
                            '"
.$respuesta[$i]['NOMBRE']."',
                            '"
.$respuesta[$i]['CORREO']."',
                            '"
.$_SESSION['MM_Username']."',
                            '"
.$respuesta[$i]['TELEFONO']."',
                            '"
.$respuesta[$i]['WEB']."',
                            '"
.$respuesta[$i]['CONTACTO']."',
                            '"
.$respuesta[$i]['ACTIVIDAD']."',
                            '1',
                            '"
.date('Y-m-d H:i:s')."',
                            '"
.$respuesta[$i]['RIF']."',
                            '"
.$respuesta[$i]['DIRECCION']."'
                            );
                            "
;
                } 
                else 
                {
                    echo 
"<td>Correo Repetido</td>";    
                }
            }
            
//echo $query1;
            
mysql_select_db($database_origen$origen);
            
$Result1 mysql_query($query1$origen) or die(mysql_error());
        echo 
"</tr>";
        }
    }
    echo 
"</table>";
    if (isset(
$rif))
    {
        
mysql_free_result($rif);
    }
    if (isset(
$correos))
    {
        
mysql_free_result($correos);
    }
    if (isset(
$correos2))
    {
        
mysql_free_result($correos2);
    }
    
//print_r($respuesta);

__________________
http://www.solucionesrios.tk/

Visita mi Web!
  #2 (permalink)  
Antiguo 21/03/2013, 11:13
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 15 años, 11 meses
Puntos: 47
Respuesta: Evitar Duplicidad en Carga Excel

Si la información que exportas viene de una BD ocupa el distinct para que no te recupere registros duplicados...
  #3 (permalink)  
Antiguo 21/03/2013, 11:16
 
Fecha de Ingreso: diciembre-2008
Ubicación: http://www.solucionesrios.tk/
Mensajes: 413
Antigüedad: 15 años, 3 meses
Puntos: 19
Respuesta: Evitar Duplicidad en Carga Excel

Cita:
Iniciado por alex1084 Ver Mensaje
Si la información que exportas viene de una BD ocupa el distinct para que no te recupere registros duplicados...
No entiendo su comentario, hago una busqueda de rif y de correos y si el total de columnas es diferente a cero, quiere decir que existen registros con esos datos
__________________
http://www.solucionesrios.tk/

Visita mi Web!
  #4 (permalink)  
Antiguo 21/03/2013, 11:38
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 15 años, 11 meses
Puntos: 47
Respuesta: Evitar Duplicidad en Carga Excel

por eso pero si en la base de datos existen duplicada la información con el distinct los filtras... si no sabes de lo que hablo entonces lee un poco de sql
  #5 (permalink)  
Antiguo 21/03/2013, 11:39
 
Fecha de Ingreso: diciembre-2008
Ubicación: http://www.solucionesrios.tk/
Mensajes: 413
Antigüedad: 15 años, 3 meses
Puntos: 19
Respuesta: Evitar Duplicidad en Carga Excel

Cita:
Iniciado por alex1084 Ver Mensaje
por eso pero si en la base de datos existen duplicada la información con el distinct los filtras... si no sabes de lo que hablo entonces lee un poco de sql
Si se que hablas, pero no le veo fin, porque no son necesarios, lea el codigo para que se de cuenta de como busco la info y la filtro
__________________
http://www.solucionesrios.tk/

Visita mi Web!

Etiquetas: duplicidad, excel, mysql, select, sql
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 07:59.