Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1

    Caricare intero file txt su db MySQL (PHP)

    Ciao,
    tempo fa feci una pagina php che caricava riga per riga tutto il contenuto di un file txt sul server...
    Ora non riesco proprio a ricordare come feci... qualcuno potrebbe aiutarmi??


    Insomma presumendo abbia un file di testo "nomi.txt" formattato in questa maniera:
    Nome
    Nome
    Nome


    per rendere meglio l'idea:
    Luigi
    Dario
    Ernesto



    Ora voglio inserire nel database questi dati... (non mi interessa ordinarli prima di inserirli in quanto il txt è già ordinato, tanto meno mi interessa eliminare qualche carattere tipo spazi, apostrofi ecc... Quindi devo solo caricare riga per riga)

    il database deve essere:
    ID(Univoco) - Nome - CampoVuoto


    Perchè il CampoVuoto?
    Successivamente dovrò aggiungete ulteriori valori quindi mi serve lasciare un campo vuoto (ma questo non è importante perchè posso crearlo anche successivamente modificando la struttura della tabella)




    In teoria so come fare.. ma in pratica non ricordo niente del codice...
    In teoria:
    1. Prendo il file "nome.txt"
    2. Conto il numero delle righe e lo inserisco in una variante
    3. Creo un ciclo che parte da 0 e si ferma quando arriva al valore della variante assegnata nel ((punto 2))
    Nel ciclo metto "Insert into $table from 'Nome'..."
    e alla fine del ciclo metto (variante assegnata al punto 2)++ (in modo da incrementarla di 1)


    Qualcuno può aiutarmi suggerendomi il codice??

  2. #2
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480
    Usa file() per mettere il file in un array

    http://php.net/manual/it/function.file.php

    poi ti basta ciclare l'array con foreach e fare le insert. Magari preparandole con degli statement, vedi http://php.net/manual/en/pdo.prepared-statements.php

  3. #3
    Originariamente inviato da garakkio
    Usa file() per mettere il file in un array

    http://php.net/manual/it/function.file.php

    poi ti basta ciclare l'array con foreach e fare le insert. Magari preparandole con degli statement, vedi http://php.net/manual/en/pdo.prepared-statements.php
    Quindi qualcosa del genere:
    Codice PHP:
    $lines file('/nomi.txt');
    foreach(
    $lines as $line_num => $line) {
        echo 
    "***inserisci file nel db***";

    non credo d'aver capito bene... non potresti farmi una bozza di codice??

  4. #4
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480
    va benissimo quella che hai postato.
    Per la parte di inserimento nel db, spero proprio che non ti serva una bozza di codice...

  5. #5
    No, quello non dovrebbe essere un problema... credo sia
    INSERT INTO tabella(Nome)
    VALUES $lines

    Comunque più tardi provo e vedo cosa ne esce

  6. #6
    c'è qualche problema, il ciclo non parte proprio.... cosa sbaglio??

    forse perché nel codice d'esempio non c'è alcuna riga che assegna la variante $line_num quindi quando va a fare il ciclo non so cosa fare (quando apro la pagina non vedo niente... se metto un echo prima, durante e dopo il ciclo riesco a vedere solo i due avvisi che non appartengono al ciclo... quindi credo sia sicuro un problema di "Condizione"

    dove sbaglio??

  7. #7
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480
    Originariamente inviato da shuttle15
    c'è qualche problema, il ciclo non parte proprio.... cosa sbaglio??

    forse perché nel codice d'esempio non c'è alcuna riga che assegna la variante $line_num quindi quando va a fare il ciclo non so cosa fare (quando apro la pagina non vedo niente... se metto un echo prima, durante e dopo il ciclo riesco a vedere solo i due avvisi che non appartengono al ciclo... quindi credo sia sicuro un problema di "Condizione"

    dove sbaglio??
    qualche controllo in più (file esistente e leggibile, array non vuoto, ecc.) non fa mai male.
    Poi se metti un livello di errori adatto allo sviluppo non fai un soldo di danno. Vedi http://php.net/manual/it/errorfunc.c...rror-reporting

  8. #8
    mi dice che non mi trova il file...
    la sintassi a me sembra giusta:

    $lines = file('/nome_file.txt');


    EDIT: ecco, un errore in meno, lo slash era inutile!

  9. #9
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480
    Il percorso del file deve essere corretto e mi pare strano che possa trovarsi nella root.
    Prova con "./nome_file.txt" al posto di "/nome_file.txt"

  10. #10
    """
    Column count doesn't match value count at row 1
    """

    significherebbe?

    EDIT: Ok, verificando avevo un campo richiamato ma non riempito cioè inserti into ... (1, 2) values (asdfdfa)... ora correggendo e togliendo il secondo campo mi da:

    Unknown column 'Array' in 'field list'

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.