Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Trasferimento dati da file a database

    Ho un file con qualche centinaio di righe. Ciascuna riga contiene varie informazioni, separate tra loro da un ";" (punto e virgola).

    Sapreste dirmi come trasferire questi dati in un database MySql: ad ogni riga dovrebbe corrispondere una riga sul db e ad ogni informazione una colonna.

    Grazie dell'aiuto.

  2. #2
    Utente di HTML.it L'avatar di ilmila
    Registrato dal
    Apr 2005
    Messaggi
    68
    Leggi il file tramite la funzione file

    $data = file("file.txt")

    ogni riga del file adesso è salvata dentro array $data
    in $data[0] è salvata la prima riga $data[1] la seconda e cosi via


    poi tramite un ciclo effettui un controllo per ogni riga definita da $line

    foreach ($data as $line) {

    1.estrai i campi delimitati dal carattere delimitatore
    tramite la funzione explode()
    2.Effettua l'inserimento dei valori estrapolati nella base di dati tramite INSERT
    }
    Sistema Acquisizione Risultati Sportivi
    Sistema Prenotazione Posti
    http://parse2005.altervista.org/

  3. #3
    Originariamente inviato da ilmila
    foreach ($data as $line) {

    1.estrai i campi delimitati dal carattere delimitatore
    tramite la funzione explode()
    2.Effettua l'inserimento dei valori estrapolati nella base di dati tramite INSERT
    }
    sarebbe quindi così?
    codice:
    foreach ($data as $line) {
    $valori = explode($data)
    }
    oppure

    codice:
    foreach ($data as $line) {
    $valori = explode($line)
    }
    Non ho ben capito cosa è $line...
    A questo punto ciascun elemento dell'array $valori conterrà una informazione?

    Grazie!

  4. #4
    Utente di HTML.it L'avatar di ilmila
    Registrato dal
    Apr 2005
    Messaggi
    68
    al posto di $line puoi mettere quello che vuoi anke $ciccio..



    $valore = explode(";" , $line);

    $valore è un array e conterrà ogni valore per ogni indice
    ossia se una riga è

    valroe1;pippo;ciccio;caio;

    $valore[0] = valroe1

    $valore[1] = pippo
    $valore[2] = ciccio
    $valore[3] = caio


    vedi il manuale di php su explode cmq
    http://it2.php.net/manual/it/function.explode.php

    adesso nell 'array $valore hai tutti i valori per esser inseriti nella base di dati tramite un ciclo while
    Sistema Acquisizione Risultati Sportivi
    Sistema Prenotazione Posti
    http://parse2005.altervista.org/

  5. #5
    Utente di HTML.it L'avatar di fabi080
    Registrato dal
    Mar 2002
    Messaggi
    442
    O altrimenti con una riga di SQL
    codice:
    LOAD DATA INFILE tuofile.txt INTO tuatabella
       FIELDS TERMINATED BY ';'
       LINES TERMINATED BY '\n';
    Occhio che se il file è fatto su win potresti dover mettere LINES TERMINATED BY '\r\n';

    Cmq per approfondimenti e sintassi completa
    http://dev.mysql.com/doc/mysql/en/load-data.html

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.