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. trasformare file di testo in database
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • C
      cybergiaggia User • ultima modifica di

      trasformare file di testo in database

      ciao a tutti,
      ho un file di testo in cui vengono scritti, su un'unica riga, i dati dei sottoscrittori di un appello in questo modo:

      nome cognome - città - email

      ovvero:

      [PHP]if (!file_exists($filelocation)) {
      $newfile = fopen($filelocation,"w+");
      fclose($newfile);
      }
      $lines = array_map('rtrim', file( $filelocation ));
      for ( $key = 0; $key < count($lines); $key++ ) {
      if ( $lines[$key] == ($_POST['var1'] . " " . $_POST['var2'] . " - " . $_POST['var3'] . " - " . $_POST['var4'])) {
      $found = 1;
      }
      }
      [/PHP]

      Poichè i sottoscrittori stanno aumentando vertiginosamente, mi chiedevo se esiste un modo per estrapolare questi dati, e magari trasferirli all'interno di un db mysql. Meglio ancora, importarli direttamente dentro un db.
      Vi prego, ditemi di siiiiiiiiii

      :ciauz:

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • samyorn
        samyorn Consiglio Direttivo • ultima modifica di

        @cybergiaggia said:

        Vi prego, ditemi di siiiiiiiiii
        SI 🙂

        Ciao cybergiaggia

        Utilizzando la funzione file() che trovi quì ottieni un elemento array per ogni riga del file
        Esplodi ogni riga tramite un ciclo utilizzando list() e explode()

        [php]list($nome_cognome,$citta,$mail)=explode("-",$array['$i']);[/php]e per ogni ciclo poi ti salvi i valori ottenuti sulla tua tabella 😉

        Se c'è qualcosa di non chiaro siam quì 😉

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • C
          cybergiaggia User • ultima modifica di

          grazie! era proprio la risposta che volevo ricevere... 🙂
          e per passare alla domanda successiva: come si fa??? 🙂 🙂 🙂

          ho dato un'occhiata alle funzioni...
          come fa la funzione file() a contare gli 'n' array???

          quello che ho per il momento ho, sono:

          • il file di testo;
          • un db mysql;
          • tanta buona volontà!

          aiutoooooooooo

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • samyorn
            samyorn Consiglio Direttivo • ultima modifica di

            come avrai letto ad ogni newline la funzione crea un nuovo elemento array 😉

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • C
              cybergiaggia User • ultima modifica di

              no, intendevo il codice php, i puntini sospensivi fanno parte del codice?

              echo $textarray[0]; // risultato: testo1\n
              echo $textarray[1]; // risultato: testo2\n
              .........
              echo $textarray; // risultato: teston\n

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • C
                cybergiaggia User • ultima modifica di

                mi puoi dare qlche dritta in piu sul da farsi?
                grazie

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • samyorn
                  samyorn Consiglio Direttivo • ultima modifica di

                  [PHP]$textarray=file("percorso/nomefile.txt");
                  $i=0;
                  while($i<count($TEXTARRAY))
                  {
                  $text=substr($textarray*,0,-1);
                  list($nome_cognome,$citta,$mail)=explode("-",$text);

                  $sql="INSERT INTO nome_tabella (nome,citta,mail) VALUES ('$nome_cognome', '$citta', '$mail')";
                  $query=@mysql_query($sql) or die (mysql_error());
                  }[/PHP]
                  così dovrebbe andare 😉

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • C
                    cybergiaggia User • ultima modifica di

                    mille grazie!!!
                    questa è una query per il mio db?
                    ho provato a inserirla ma mi dà questo errore relativo al percorso del file di testo:

                    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$textarray=file("appello.txt")' at line 1

                    Se il db è collegato al dominio 'miodominio.it' e il file di testo è nella directory principale, quale deve essere il percorso?

                    ancora grazie per il disturbo!!!
                    🙂

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • samyorn
                      samyorn Consiglio Direttivo • ultima modifica di

                      Intanto metti questa riga così
                      [php]while($i<count($textarray))[/php]
                      mi era scappato il maiuscolo 😄

                      se il file di testo e' nella root e questo script è nella root va bene come lo hai postato 😉

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • C
                        cybergiaggia User • ultima modifica di

                        non so dove sia lo script...
                        io lo eseguo come query all'interno del db...
                        o lo devo inserire in un file php???
                        :bho:

                        scusa, ma sono una frana...

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • samyorn
                          samyorn Consiglio Direttivo • ultima modifica di

                          ah ecco...infatti non capivo perchè fosse il mysql a darti noie...ma il sonno.... 😄

                          No questo script deve effere un file .php

                          dal pannello del Db puoi solo effettuare comandi di MySQL 😉

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • C
                            cybergiaggia User • ultima modifica di

                            se chiamo il file php con quello script il risultato è questo:

                            Can't connect to MySQL server on 'localhost' (10061)

                            c'è qlcsa che mi manca evidentemente...
                            😞

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • samyorn
                              samyorn Consiglio Direttivo • ultima modifica di

                              se hai copincollato tutto così com'è certo!

                              devi mettere i dati di connessione al Db 😉

                              Dai un'occhiata quì

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • C
                                cybergiaggia User • ultima modifica di

                                ...

                                ti aggiorno sulla mia triste situazione... 🙂

                                ho fatto come mi hai detto, ho messo in connessione il db e tutto sembrava andare per il meglio, nel senso che non è uscita la scritta "Connessione al Db non stabilita"...

                                poi ho inserito lo script in questo modo:
                                [php]<?
                                $db_host = "NOME_HOST";
                                $db_user = "NOME_USER";
                                $db_psw = "PASSWORD";
                                $db_name = "NOME_DB";

                                $connessione = mysql_connect ($db_host, $db_user, $db_psw) or die ("Connessione al server non stabilita");

                                $db_NOME_DB = mysql_select_db ($db_name, $connessione) or die ("Connessione al Db non stabilita");

                                $textarray=file("NOME_FILE.txt");
                                $i=0;
                                while($i<count($textarray))
                                {
                                $text=substr($textarray*,0,-1);
                                list($nome_cognome,$citta,$mail)=explode("-",$text);

                                $sql="INSERT INTO NOME_TABELLA (nome,citta,mail) VALUES ('$nome_cognome', '$citta', '$mail')";
                                $query=@mysql_query($sql) or die (mysql_error());
                                }

                                mysql_close($connessione);
                                ?>[/php]
                                Ti confermo che il file php e il file txt sono nella stessa root e il risultato è stato questo:

                                Table 'NOME_DB**.NOME_TABELLA****' doesn't exist**

                                Allora ho provato a crearla io la tabella NOME_TABELLA all'interno dell'interfaccia di mysql, dandole 3 campi.
                                Ma il risultato è stato identico... :arrabbiato:

                                Grazie ancora per la pazienza...
                                sento di essere vicina alla meta...
                                🙂

                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                • samyorn
                                  samyorn Consiglio Direttivo • ultima modifica di

                                  ma il Db si chiama NOME_DB ?

                                  0 Miglior Risposta Ringrazia Cita Rispondi

                                    1 Risposta Ultima Risposta
                                  • C
                                    cybergiaggia User • ultima modifica di

                                    si, nel senso che a NOME_DB devi sostituire il vero nome che ho preferito non rendere pubblico...

                                    p.s.: ma ho fatto bene a crearla io la tabella?

                                    0 Miglior Risposta Ringrazia Cita Rispondi

                                      1 Risposta Ultima Risposta
                                    • samyorn
                                      samyorn Consiglio Direttivo • ultima modifica di

                                      certo devi crearla tu la tabella 😉
                                      per l'errore che ti ha restituito significa che il nome della tabella non corrisponde con quello messo nello script....
                                      domanda: nel nome della tabella hai per caso messo spazi?
                                      hai percaso chiamato la tabella Tabella e la richiami scrivendo *tabella?
                                      *il nome della tabella nello script deve essere messo esattamente per come è nel Db e non mettere spazi nei nomi tabella 😉

                                      0 Miglior Risposta Ringrazia Cita Rispondi

                                        1 Risposta Ultima Risposta
                                      • C
                                        cybergiaggia User • ultima modifica di

                                        ti giuro di no!
                                        per sicurezza ho copiato e incollato il nome nell'interfaccia mysql...
                                        l'ho rifatto adesso, assicurandomi che non ci fossero spazi dopo aver incollato...
                                        boh

                                        0 Miglior Risposta Ringrazia Cita Rispondi

                                          1 Risposta Ultima Risposta
                                        • samyorn
                                          samyorn Consiglio Direttivo • ultima modifica di

                                          beh...l'errore è molto chiaro, la tabella *comesichiama non esiste.
                                          *per lo spazio intendevo non tanto lo spazio dopo ma dentro
                                          nome tabella è diverso da nome_tabella ed il primo caso non va bene 😉

                                          0 Miglior Risposta Ringrazia Cita Rispondi

                                            1 Risposta Ultima Risposta
                                          • C
                                            cybergiaggia User • ultima modifica di

                                            ci sono!
                                            pensavo di averla creata ma non era vero... 😞
                                            adesso mi si chiede di riempire i campi della tabella...

                                            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