Sommario
Alcuni progetti Web richiedono la gestione di elenchi di dati di grandi dimensioni come elenchi di prodotti, vendite, utenti e notizie.Molte persone trovano più facile avere questi dati offline in un foglio di calcolo.
L'obiettivo di questo tutorial è quello di poter eseguire l'importazione indipendentemente dal programma, che sia Excel o Libreoffice o un'altra opzione disponibile per l'utente.
Dopo aver creato un database MySQL, è necessario popolarlo con le informazioni. I dati del database sono generalmente contenuti in un file con limitazioni di virgole, o CSV, e devono essere importati nel database MySQL. Questo è un compito molto semplice che utilizza le funzioni integrate di PHP che semplificano l'importazione da un file CSV e l'esportazione in un database MySQL.
In questo caso abbiamo un listino prezzi di assistenza e ricambi per computer.
[color = # 0000cd] CREA TABELLA SE NON ESISTE `prezzi` ([/ color]
[color = # 0000cd] `id` int (10) NOT NULL AUTO_INCREMENT, [/ color]
[color = # 0000cd] `concept` varchar (255) DEFAULT NULL, [/ color]
[color = # 0000cd] `price` decimal (10,2) DEFAULT NULL, [/ color]
[color = # 0000cd] CHIAVE PRIMARIA (`id`) [/ color]
[color = # 0000cd]) ENGINE = MyISAM DEFAULT CHARSET = utf8 AUTO_INCREMENT = 1; [/ color]
Ora il codice php che fa tutto il lavoro
[colore = # 0000cd] <? // ci colleghiamo al database [/ color]
[color = # 0000cd] $ connect = mysql_connect ('localhost', 'user', 'password'); [/ color]
[color = # 0000cd] if (! $ connect) {[/ color]
[color = # 0000cd] die ('Impossibile connettersi a MySQL:'. mysql_error ()); [/ color]
[colore = # 0000cd]} [/ colore]
[color = # 0000cd] $ connectdb = mysql_select_db ('Services', $ connect); [/ color]
[color = # 0000cd] // Carichiamo il file csv che proviene dal form [/ color]
[color = # 0000cd] move_uploaded_file ($ _ FILES ["file"] ["tmp_name"], $ upload_dir. "/". $ FILES ["file"] ["tmp_name"]); [/ color]
[colore = # 0000cd] $ cvs = $ upload_dir. "/". $ _FILES ["file"] ["nome"]; [/ colore]
[color = # 0000cd] // row conterà il numero di righe nel file inizia da 0 [/ color]
[colore = # 0000cd] $ riga = 0; [/ colore]
[color = # 0000cd] $ fp = fopen ($ cvs. "", "r"); [/ color]
[color = # 0000cd] while (! feof ($ fp)) {// ho letto il file una riga alla volta [/ color]
[colore = # 0000cd] $ riga ++; [/ colore]
[color = # 0000cd] // Salto la prima riga poiché ha i titoli e non mi interessa inserirli nel database [/ color]
[color = # 0000cd] if ($ row> 1) {[/ color]
[color = # 0000cd] // La riga che leggo la separo con esplodi e indico che è separata da; [/ color]
[color = # 0000cd] $ data = esplode (";", fgets ($ fp)); [/ color]
[colore = # 0000cd] $ id = $ dati [0]; [/ colore]
[colore = # 0000cd] $ concetto = $ dati [1]; [/ colore]
[colore = # 0000cd] $ prezzo = $ dati [2]; [/ colore]
[color = # 0000cd] $ query = "INSERT INTO price (id, concept, price) VALUES ($ data [0], '$ data [1]', '$ data [2]')"; [/ color]
[color = # 0000cd] mysql_query ($ query, $ connect); [/ color]
[color = # 0000cd] // fine del ciclo while [/ color]
[colore = # 0000cd]} [/ colore]
[colore = # 0000cd]} [/ colore]
[color = # 0000cd] // chiudi il file [/ color]
[color = # 0000cd] fclose ($ csv); [/ color]
[color = # 0000cd] echo "Importazione terminata!!"; [/ color]
[color = # 0000cd] mysql_close ($ connect); [/ color]
[colore = # 0000cd]?> [/ colore]
Puoi anche utilizzare questo script e renderlo più flessibile, consentendo all'utente di registrare il file in un modulo html con
[colore = # 0000cd] [/ colore]
[colore = # 0000cd] [/ colore]
[colore = # 0000cd] [/ colore]
e quindi essere in grado di caricare file CSV e importare dati da quel file CSV a qualsiasi database mysql o anche a diversi da un singolo file. Ci sono molte modifiche che possono essere fatte con questo script e utilizzarlo nel modo desiderato.