Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. [Tutorial] Script per importare un file testuale in mysql
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • M
      momino User Attivo • ultima modifica di

      Grazie tante MZ, amo lavorare in gruppo!!
      Comunque non dovrebbero esserci problemi per gli apici, perchè ho inserito il tutto in doppi apici
      ...VALUES ("'.$utenti*["codice"].'",...
      al massimo si potrebbe usare un accorgimento del genere:
      [PHP]$utenti["nome"] = str_replace ($utenti["nome"],'"','"');[/PHP]
      in modo da non interrompere la stringa con doppi apici "subdoli" 😛

      Penso che non serva la variabile del numero di campi da inserire, in quanto è già impicito nella struttura della tabella. La query ke ho scritto io la riempie per intero, quindi si presume ke ki programma lo script abbia anke creato il database, la tabella e voglia riempirla SEMPRE in TUTTI i suoi campi...
      Altrimenti la query dovrebbe cambiare...
      Se siete interessati sviluppo anche questa alternativa, mi divertono le cose complicate...
      Intanto vado a mare!!!:eheh:

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • M
        mz User Attivo • ultima modifica di

        Grazie a te momino e a lorenzo..

        Si penso che hai ragione sugli apici..

        Bhe direi che il problema è risolto poi lo script ognuno la può personalizzare secondo le proprie esigenze.

        :ciauz:

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • A
          ale90 User Attivo • ultima modifica di

          Eccomi di ritorno..

          Wow quanta roba..

          Siete grandi raga..

          Ciao e grazie 😉

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • M
            mz User Attivo • ultima modifica di

            Ciao Ale90,

            Se lo provi e magari trovi qualcosa che non funziona o hai qualche consiglio su come migliorarlo facci sapere in modo da avere per tutti uno script funzionante.

            :ciauz:

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • M
              momino User Attivo • ultima modifica di

              E' sempre un piacere, Ale!!
              Facci sapere dopo la prova...

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • M
                mz User Attivo • ultima modifica di

                Segnalato il Topic in:

                http://www.giorgiotave.it/forum/php-mysql/29412-tutorial-script-thread-utili.html#post216910

                questo non significa che la discussione sia chiusa, se ci sono altre cosette da implementare, problemi con lo script continuiamo qui.

                :ciauz:

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • G
                  gorka Super User • ultima modifica di

                  Aggiungo un altro modo, che sfrutta delle funzionalità proprie di mysql:

                  [php]$query = "LOAD DATA INFILE 'file.txt' IGNORE INTO TABLE ".$tabella ." FIELDS TERMINATED BY '-' LINES TERMINATED BY '\n'";

                  if (mysql_query ($query)) echo mysql_affected_rows()."linee inserite";
                  else echo mysql_error();[/php]

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • massimux
                    massimux Moderatore • ultima modifica di

                    si in questo modo fai fare tutto a mysql ma se il file è abbastanza grande mysql và in cresh a meno che il server su cui si appoggia non sia solo ed unicamente per quello....

                    provare per credere 🙂

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • G
                      gorka Super User • ultima modifica di

                      Io ho provato in locale con file csv più grandi di 4 mb e ho ottenuto un notevole miglioramento delle prestazioni rispetto all'uso di script in PHP (con l'uso ad esempio di fgetcsv).

                      Adesso lo devo testare su un server dedicato, speriamo vada bene.

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • M
                        momino User Attivo • ultima modifica di

                        Questa mi è proprio nuova...:():

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • massimux
                          massimux Moderatore • ultima modifica di

                          io intendevo mooolto più grandi magari dovevo specificare che io ho fatto questi test su file intorno ai 16MB

                          per lo script php io utilizzavo una divisione in più in modo che ad ogni tabella lo script fermava il suo accesso a mysql ad ogni tabella in modo da non appesantire il server.

                          Comunque la tua soluzione è la più veloce sin'ora 😄

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • T
                            talkoman User Attivo • ultima modifica di

                            Ottima guida veramente...
                            Nel mio file CSV separati da puntoevirgola (;) come faccio a saltare la prima riga che contiene le intestazioni delle colonne?
                            Grazie!

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • G
                              gorka Super User • ultima modifica di

                              Dopo LINES TERMINATED... puoi aggiungere IGNORE 1 LINES

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • T
                                talkoman User Attivo • ultima modifica di

                                Intendevo nello script PHP....

                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                • T
                                  talkoman User Attivo • ultima modifica di

                                  Ciao a tutti,
                                  ho utilizzato lo script PHP come mi è stato esposto sopra.
                                  Funziona alla perfezione solo che siccome il mio file è un file contenente migliaia di atleti e per ogni atleta è specificata la società di appartenenza.
                                  Con questo script dovrei prima prendermi solo le squadre (sempre dallo stesso file).
                                  Il problema è che le prendo tutte le righe si creerebbero dei doppioni...allora ho cercato di adattarlo così:
                                  [PHP]$societa=array();//creo un array dove vengono conservati tutti gli utenti presenti nel file
                                  $i=0;//creo un indice per l'array
                                  $doppione=0;//creo un contatore per i doppioni
                                  if($file=fopen("atleti.txt","r")){
                                  while (!feof($file)){
                                  $riga=fgets($file,255);//Leggo una riga intera del file e la inserisco in una variabile
                                  $riga=explode(";",$riga);//Taglio la stringa nel punto in cui è presente il carattere -
                                  $progressivo=$riga[10];
                                  $regione=$riga[9];
                                  $codice=$regione."-".$progressivo;
                                  if($i>=1){
                                  for($x=0;$x<=$i-1;$x++){
                                  if($codice==$societa[$x]['codReg_Soc']."-".$societa[$x]['codPrg_Soc'])
                                  $doppione=$doppione+1;
                                  }
                                  }
                                  if($doppione==0){
                                  $societa*['codReg_Soc']=$riga[9];//Inserisco la prima parte della stringa che rappresenta il codice dell'utente all'interno dell'array
                                  $societa*['codPrg_Soc']=$riga[10];//Inserisco la secondo parte della string che rappresenta il nome dell'utente all'interno dell'array
                                  $societa*['denominazione_Soc']=$riga[11];
                                  }
                                  $doppione=0; //Azzero nuovamente il contatore dei doppioni
                                  $i++;//Incremento l'indice
                                  }
                                  }else
                                  echo "Impossibile aprire il file";//Nel caso in cui non si riesca ad aprire il file
                                  fclose($file); //chiudo il descrittore del file[/PHP]

                                  Lo script è lentissimo, però funziona. Ma c'è un problema...su 85 Società, lui me ne estra solo 80.
                                  Come mai?
                                  Sbaglio qualcosa?
                                  Grazie!!

                                  0 Miglior Risposta Ringrazia Cita Rispondi

                                    1 Risposta Ultima Risposta
                                  Caricamento altri post
                                  Rispondi
                                  • Topic risposta
                                  Effettua l'accesso per rispondere
                                  • Da Vecchi a Nuovi
                                  • Da Nuovi a Vecchi
                                  • Più Voti