Visualizzazione dei risultati da 1 a 5 su 5

Discussione: from txt to db

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    58

    from txt to db

    Ciao ragazzi...

    Vorrei, attraverso un form, caricare dei dati in un database. Questo sarebbe banale, se non che i dati li posso prendere da una textarea e i valori sono separati dal nome della variabili con un = e ad ogni rica c'è una copppia "variabile = valore" diversa, ma ecco un esempio:

    codice:
    sprache = it
    eta = 36
    luogo = vimercate
    Leggi_etichette_prima_di_comprare_prodotto_non_alimentare = si
    Altro = marchi_sono_un_indice_di_maggiore_qualita = si
    conosci_sigla_ce = si
    cosa_significa = prodotto_europeo
    lavatrice_in_casa_fiducia_marca = ON
    lavatrice_in_casa_minor_consumo_elettrico = ON
    lavatrice_in_casa_altro_testo =
    conservato_libretto_istruzioni_lavatrice = si
    quante_volte_lo_leggi = mai
    Dovrei far questo dato che una società di sviluppo di siti è così brava che ha pensato di mandare la compilazione di un form via mail al cliente... Ma naturamente i dati devono essere elaborati!!!!

    Ora, come potrei fare?
    Sapendo che il numero di valori totale è pari a 69, dovrei prenderli e caricarli in un db...
    Ovviamente ho già chiamato chi ha sviluppato il portale, ma ha detto che un db così non era previsto, che ci sono costi aggiuntivi ecc...
    Così mi han chiesto se per favore posso metterci una pezza io, e dato che non saprei un modo funzionale per leggere questi valori chiedo a voi ^_^

    Spero sappiate aiutarmi

    Saluto

  2. #2
    non ho capito se i file li leggi da file o da form.. e da questo dipende il COME leggere riga per riga... in ogni caso una volta letta una riga basta usare explode e list

    list($variabile, $valore) = explode('=',$riga);



  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    58
    da una textarea di un form dovrei considerare ogni singola riga, e per ogni singola riga fare un explode...

    Come considero volta per volta le singole righe? Se è necessario so anche il numero delle righe, ma preferirei fosse dinamico...

    Il carattere per andare a capo dovrebbe essere /nl giusto?

    Però non so come fare per (magari con un ciclo for o while) considerare riga per riga...

    Dopodichè in ogni riga devo fare un explode e prendere il secondo valore e mtterlo in un array (facile)...

    Poi questo array una volta costruito devo leggerlo fino alla fine e inserire i valori (considerandone la posizione) nel mio db...

    Saprese consigliarmi? :master:



    Grazie

  4. #4
    allora.. il testo è del tipo:
    chiave = valore (a capo)... giusto?
    Codice PHP:
    $righe explode('\n',$riga); //potrebbe essere anche \r o \n\r.. verifica

    //per ogni riga
    foreach($righe as $riga)
    {
      list(
    $variabile$valore) = explode('=',$riga); 
      
    //fai qualcosa con questi dati


  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    58
    Se a qualcuno può interessare ho implementato così:

    codice:
    $righe = explode("\n",$_POST['quest']); 
    
    $sql = "INSERT INTO table VALUES(";
    
    foreach($righe as $riga)
    
    {
      
      $valore = explode(' = ',$riga); 
    
      if ($valore[1]=="") {
      		$valore[1] = "null";
      	} else {
      		$valore[1] = "'" . $valore[1] . "'";
      	}
    
      $sql.= $valore[1].", ";
    
    }
    
    $sql = substr($sql,0,-2); //per togleire l'ultimo "virgola+spazio"
    
    $sql.=")";

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 © 2024 vBulletin Solutions, Inc. All rights reserved.