Mysql
 sql >> Database >  >> RDS >> Mysql

Importa coll excel in sql

Sono riuscito a capire che funzionerà con array. Non l'ho ancora ordinato ma metto qui il mio codice, forse puoi aiutarmi.

<?php
   function csv_to_array($filename='', $delimiter=',') {
    if(!file_exists($filename) || !is_readable($filename))      return
   FALSE;       $header = NULL;     $data = array();    if (($handle =
   fopen($filename, 'r')) !== FALSE)    {       while (($row =
   fgetcsv($handle, 1000, $delimiter)) !== FALSE)       {           if(!$header)
                $header = $row;
                        else
                $data[] = array_combine($header, $row);
                    }       fclose($handle);    }   return $data; } /**  * Example  */ print_r(csv_to_array('example.csv'));

   ?>

il mio file CSV è simile a questo:

cod_piesa, lungime, latime, inaltime
gl, 5000,, 150
fd, 3000, 2000, 100

quello che voglio fare è inserirlo in una tabella mysql come questa

row = 0
cod_piesa = GL
header = lungime
value = 5000

next one

row = 0
cod_piesa = GL
header = latime
value = NULL

row = 0
cod_piesa = GL
header = inaltime
value = 150

row = 1
cod_piesa = FD..... and so on.

La tabella mysql si chiama tbl_drafts e ha le colonne draft_id, row, cod_piesa, header, value. draft_id è un ID temporaneo che genererò, diciamo $draft_id=1

dopo l'inserimento devo reindirizzarlo a una nuova pagina dove confronterò risultati diversi, diciamo 'verification.php'.

Grazie mille per tutte le tue risposte

Per il momento sto utilizzando un file caricato sul server, ma avrei bisogno di un'opzione di caricamento manuale in cui il visitatore può caricare il file CSV o excel.

Sono sicuro che questo aiuterà molte persone se risolto. Ho dato un'occhiata all'opzione di trasposizione ma non sono riuscito a capirlo.