Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    69

    inserire dati da textarea a mysql

    Salve, problemino stupido per i più esperti.
    In una textarea devo incollare un testo stile csv. Per capirci
    campo1^campo2^campo3^ecc...

    successivamente dovrei inserire tutto in una tabella mysql già creata e configurata per ricevere i dati. Ho allora usato questo codice
    Codice PHP:
    <?php  $errorefalse
    if(!
    $oggetto) {      
    $errore=true;      
    echo 
    "Nessun input inserito"
    exit; } 
    $cn mysql_connect("localhost""username""password");     
    mysql_select_db("nomedatabase"$cn);          
    $carattere"^";         
    $string=explode($carattere$oggetto);        
    $sql"INSERT INTO tabella (campo1,campo2,campo3,ecc)
             VALUES ('
    $string[0]','$string[1]','$string[2]','$nuova[3]',ecc)"
     if (!
    mysql_query($sql,$cn))   
    {   die(
    'Error: ' mysql_error());   

    echo 
    "record added";    
    mysql_close($cn);     
    ?>
    Il tutto funziona se nella text area inserisco solo una riga, invece se inserisco più righe, non essendoci un ciclo, mi inserisce sempre e solo la prima riga.
    Domanda, come posso fare per ciclare correttamente affinchè tutte le righe inserite nella textarea siano inserite nel db? GRazie a chi vorrà aiutarmi

  2. #2
    ma mi fai capire cosa fai qui:
    Codice PHP:
    $carattere"^";          
    $string=explode($carattere$oggetto);
    $sql"INSERT INTO tabella (campo1,campo2,campo3,ecc) 
             VALUES ('
    $string[0]','$string[1]','$string[2]','$nuova[3]',ecc)"
    fai un explode di una stringa... e se l'array generato è di dimensione inferiore a quella che decidi?
    poi $nuova[3] da dove lo prendi??

    mhà...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    69
    ciao, in realtà lo script è leggermente più complicato quindi ho ritenuto opportuno ricopiare qui solo la parte d'interesse. Per rispondere alla prima tua domanda, esatto faccio un esplode della stringa proveniente dalla textarea in modo da ottenere i campi che m'interessa inserire nel db. Non m'interessa fare controlli sulla dimensione dell'array perchè sono sicuro che l'array generato avrà sempre la lunghezza giusta.
    La variabile $nuova è semplicemente una stringa modificata in un'altra parte del codice che non ho riportato.

  4. #4
    Prova a are così:

    Codice PHP:
    $char"\n";         
    $righe=explode($char$oggetto);     
    foreach(
    $righe as $rows)
    {
       
    $carattere"^";         
       
    $string=explode($carattere$rows);        
       
    $sql"INSERT INTO tabella (campo1,campo2,campo3,ecc)
             VALUES ('
    $string[0]','$string[1]','$string[2]','$nuova[3]',ecc)"
        if (!
    mysql_query($sql,$cn))   
       {   
           die(
    'Error: ' mysql_error());   
       } 
       echo 
    "record added";  
    }  
    mysql_close($cn); 

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    69
    Grazie per la risposta Samleo, in effetti la tua soluzione è proprio quella che a me servirebbe, ma purtroppo non funziona a dovere. Nel senso che, usandola, mi inserisce nel db sempre una sola riga per lo più con valori null. Qualche altro suggerimento?
    Codice PHP:
    $char"\n"
    $righe=explode($char$oggetto);
              
    foreach(
    $righe as $rows)          {             
    $carattere"^";             
    $string=explode($carattere$rows);             
    $nuova[3]= str_replace(",",".",$string[3]);             
    $nuova[4]= str_replace(",",".",$string[4]);            
     
    $sql"INSERT INTO tabella
              (campo1,campo2,campo3,campo4,campo5,campo6,campo7)        
     VALUES  ('
    $string[0]','$string[1]','$string[2]','$nuova[3]','$nuova[4]','$string[5]','$string[6]')";             
       } 

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.