Visualizzazione risultati 1 fino 12 di 12

Discussione: Ipmort database

  1. #1
    inverntario non è connesso Neofita
    Data registrazione
    17-11-2019
    Messaggi
    16

    Question Ipmort database

    Buongiorno a Tutti
    sono a chiedervi un aiuto per lo sviluppo di uno script che mi permetta di creare una nuova tabella sul mio database in base ad una importazione con i parametri che trovate nello screen di seguito
    http://prntscr.com/q2xnr6

    ovvero Campi terminati con:
    Campi terminati con: ;
    Campi limitati da: ;
    Campi prefissati con:;
    si: La prima linea del file contiene i nomi dei campi della tabella (se quest'opzione non é attivata, la prima linea diventerá parte dei dati)


    mi potete aiutare?

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    A grandi linee devi
    1. creare la tabella usando una query
    2. leggere il file CSV, ignorando la prima riga
    3. per ogni riga del CSV, calcolare quali sono i singoli campi (verosimilmente esplodendo sul carattere ";")
    4. per ogni riga così elaborata, inserire i vari campi nella tabella tramite una query

    Con quale/i punto/i hai difficoltà?

    I suggerimenti che do più spesso:


  3. #3
    inverntario non è connesso Neofita
    Data registrazione
    17-11-2019
    Messaggi
    16

    Predefinito

    Con il 2° e 3° punto
    e sopratutto la sostituzione con i ";" come da screen allegato al post

  4. #4
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Per il terzo punto puoi usare fgetcsv specificando ";" come delimitatore. Il risultato sarà un vettore contenente i singoli campi.
    Per il secondo punto, fai la stessa cosa ignorando semplicemente la riga letta.

    I suggerimenti che do più spesso:


  5. #5
    inverntario non è connesso Neofita
    Data registrazione
    17-11-2019
    Messaggi
    16

    Predefinito

    saresti così gentile da farmi un esempio di codice?
    sono ancora agli inizi :(

  6. #6
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Nella documentazione di fgetcsv trovi già un valido esempio, qui riadattato:
    Codice PHP:
    <?php
    $row
    = 0;
    $handle = fopen("test.csv", "r");

    while ((
    $data = fgetcsv($handle, 0, ";")) !== FALSE) {
    $row++;
    if (
    $row == 1) {
    continue;
    }
    $num = count($data);
    echo
    "<p> $num fields in line $row: <br /></p>\n";
    for (
    $c=0; $c < $num; $c++) {
    echo
    $data[$c] . "<br />\n";
    }
    }
    fclose($handle);

    I suggerimenti che do più spesso:


  7. #7
    inverntario non è connesso Neofita
    Data registrazione
    17-11-2019
    Messaggi
    16

    Predefinito

    ed a questa pagina io potrei "trasferire" il mio file csv tramite form da una prima pagina giusto?

  8. #8
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Esatto.

    I suggerimenti che do più spesso:


  9. #9
    inverntario non è connesso Neofita
    Data registrazione
    17-11-2019
    Messaggi
    16

    Predefinito

    ho provato ad usare lo script che mi dici tu
    usando il seguente codice:
    pagina "1" (selezione file):
    Codice PHP:
    <!doctype html>
    <
    html>
    <
    head>
    <
    meta charset="utf-8">
    <
    title>Documento senza titolo</title>
    </
    head>

    <
    body>

    <
    form action="2.php" method="post" enctype="multipart/form-data">
    <
    input type="file" name="upload">
    <
    input type="submit" name="up" value="Upload file">
    </
    form>
    </
    body>
    </
    html>
    Pagina "2":
    Codice PHP:
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Documento senza titolo</title>
    </head>

    <body>

    <?php
    echo "nome file: ".$_FILES["upload"]["name"]."<hr>";

    $row = 0;
    $handle = fopen("test.csv", "r");

    while ((
    $data = fgetcsv($handle, 0, ";")) !== FALSE) {
    $row++;
    if (
    $row == 1) {
    continue;
    }
    $num = count($data);
    echo
    "<p> $num fields in line $row: <br /></p>\n";
    for (
    $c=0; $c < $num; $c++) {
    echo
    $data[$c] . "<br />\n";
    }
    }
    fclose($handle);
    ?>
    </body>
    </html>
    però non riesce a leggere il file...dove sbaglio?
    puoi testare il tutto al seguente link:
    http://inverntario.altervista.org/prova/1.php
    il file csv che sto caricando è il seguente:
    http://inverntario.altervista.org/prova/test.csv
    Ultima modifica di inverntario : 10-12-2019 alle ore 14.38.03

  10. #10
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Guardando l'output della pagina sembra che il file venga letto correttamente.

    I suggerimenti che do più spesso:


  11. #11
    inverntario non è connesso Neofita
    Data registrazione
    17-11-2019
    Messaggi
    16

    Predefinito

    ok, ma da questo script come posso estrapolare i dati per generare la quary di inserimento nel db?

  12. #12
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    All'interno del ciclo while hai accesso al vettore $data che contiene i quattro campi di ciascuna riga.

    I suggerimenti che do più spesso:


Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •