soiucion a importar datos csv no repetidos en php y desplega los datos repeditos sin almacenarlos

5 views
Skip to first unread message

Edgar CASTAÑETA

unread,
Nov 12, 2016, 7:06:43 PM11/12/16
to PHP México
<?php
    /*
    En las siguientes lineas hacemos la conexion con la base de datos :)
    */
    define ('DB_SERVER' , 'localhost');
    define ('DB_USER' , 'root');
    define ('DB_PASSWORD' , '');
    define ('DB_NAME' , 'importare');
    @ $conn = mysql_connect(DB_SERVER , DB_USER , DB_PASSWORD);
    mysql_select_db(DB_NAME , $conn);
        if (!$conn){
            die ("No se a podido establecer la conexion con la base de datos");
                   }
    /*
    La siguiente funcion es la que limita al servidor a que solamente pueda aceptar
    archivos con formato CSV.
    */
    function get_file_extension ($file_name){
         return end (explode('.',$file_name));
    }

    function errors ($error){
         if (!empty($error))
        {
             $i = 0;
             while( $i < count($error)){
             $showError.="<div class='msg-error'>".$error[$i]."</div>";
             $i++;}
             return $showError;
        }
    }
    if(isset($_POST['upfile'])){
        //Analiza si el archivo CSV que se esta subiendo contiene informacion.
        if(get_file_extension($_FILES["uploaded"]["name"])!='csv')
        {
        $error[]='El sistema solamente acepta archivos con formato CSV, por favor revise su archivo.';
        }
        if(!@$error){
            $tot = 0;
            $handle=fopen($_FILES["uploaded"]["tmp_name"],"r") ;
            while(($data = fgetcsv($handle,1000,";"))!== FALSE){
        $query=mysql_num_rows(mysql_query("SELECT CI from alumnos WHERE CI='$data[3]' "));
                //echo "El CI con Numero $data[3] $query";
                //echo "CI $data[3] Registrado <br>";
                if ($query > 0)
                {
                  echo "Se encuentra $query CI con numero $data[3]  Repetido Verifique...!!!<br>";
                }
                else
                {
                    for($c=0;$c<1;$c++){
                        //Solamente se ejecuta si la primera columna es igual a CI.
                        if($data[3]!='CI')
                        {
                         mysql_query ("INSERT INTO alumnos(NOMBRE, PATERNO, MATERNO, CI) VALUES ('".mysql_real_escape_string($data[0])."','".mysql_real_escape_string($data[1])."','".mysql_real_escape_string($data[2])."','".mysql_real_escape_string($data[3])."')") or die (mysql_error());
                         echo "El CI $data[3] fue Registrado Correctamente....!!!<br>";
                        }
                        $tot ++ ;
                    }
                 }
            }
            fclose ($handle) ;
            @$content.="<div class='success' id='message'>El archivo CSV se importo de manera correcta,Con un total de $tot registros </div>" ;
        }
    }
@$er=errors($error) ;
@$content.=<<< EOF
<h3>Importando Datos de Excel</ h3>
$er
<form enctype="multipart/form-data" action="" method="post">
Archivo:<input name="uploaded" type="file" maxlength="20"/> <input type ="submit" name="upfile" value="Importar">
</form>
EOF;
echo $content;
?>

aquí esta la tabla
create database importare;
use importare;
create table ALUMNOS(
CODIGO int AUTO_INCREMENT PRIMARY KEY,    
NOMBRE varchar(30),    
PATERNO varchar(30),    
MATERNO varchar(30),
CI  varchar(30)  
);

el archivo importar.csv  contiene archivos no repetidos pero el archivo DOS.csv contiene un archivo repetido y segundo dato no.


saludos..!!!!!!!!!!!! 
importar.csv
DOS.csv
Reply all
Reply to author
Forward
0 new messages