Visualizzazione risultati 1 fino 11 di 11

Discussione: excel -> mysql

  1. #1
    Guest

    Predefinito excel -> mysql

    ho speranze di riuscire a importare dati presi da excel in mysql?
    c'è un ottimo programma che lo fa, navicat, ma non penso che si possa accedere al db di AV dall'esterno!
    non so, se qualcuno ha avuto esperienze simili ed è riuscito non è che mi da una mano? grazie mille! :?????: :?????:

  2. #2
    Guest

    Predefinito

    bhe io una volta ho dovuto fare una cosa del genere. Ma conoscendo la programmazione... Quello che puoi fare e' esportare i dati di un fogllio xls in un file di testo con i campi separati a tab e creare uno script che li legga e li inserisca.
    Non vorrei sbagliare ma credo che mysql abbia una funzione built-in che legga da solo da un file ben formattato. Leggi la guida di mysql forse trovi qualcosa...


    Fammi sapere

  3. #3
    Guest

    Predefinito

    allora, la funzione predefinita è disabilitata, ho provato a salvare il file come cvs e farlo leggere da mysql ma il risultato è stato questo:

    Warning: chmod,chown,chgrp,symlink,link,putenv,linkinfo,rea dlink,lstat,ini_set,diskfreespace,tmpfile,tempnam, shell_exec,get_current_user() has been disabled for security reasons in /membri/perry82/my_admin/ldi_check.php on line 34
    Database my_perry82 - Tabella prestiti in esecuzione su localhost

    Errore

    query SQL :

    LOAD DATA LOCAL INFILE '/membri/.dummy/temp/php3t7E5b' INTO TABLE `prestiti` FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n'

    Messaggio di MySQL:

    The used command is not allowed with this MySQL version

  4. #4
    Guest

    Predefinito

    aZz! bhe credo che sia stato disabilitato. Tu non conosci php? Se mi dai la firma della tabella (almeno se gli attributi sono stringhe o interi) posso mandarti uno script sempllice che ti permette di inserire i dati nella tabella

    fammi sapere

  5. #5
    Guest

    Predefinito

    Prova ad utilizzare MySQL-Front

  6. #6
    Guest

    Predefinito

    grazie per i consigli, cmq:

    1) mysql-front ha lo stesso problema di navicat, ovvero è un programma che installo sul mio pc! e a quanto ne so non posso accedere dall'esterno a mysql

    2) x esordonoco: guarda io con la programmazione in generale me la cavo bene, php lo sto cominciando ora, cmq se tu hai voglia di mandarmi uno script in generale in php che prende dati da un file di testo formato:

    dato1a;dato2a;dato3a;datoNa;
    dato1b;dato2b;...
    ...
    dato1m;dato2m;...

    io poi sono tranquillamente in grado di adattarlo alle mie esigenze (a me basta averne uno che lo fa x due colonne e poi ci penso io). ti ringrazio in anticipo se ti va di farlo, se no mi ingegno io! ;)

  7. #7
    Guest

    Predefinito

    Ho trovato questo sul manuale (www.php.net)

    <?php
    $row = 1;
    $handle = fopen("test.csv","r");
    while ($data = fgetcsv($handle, 1000)) {
    $num = count($data);
    echo "<p> $num campi sulla linea $row: <br >\n";
    $row++;
    for ($c=0; $c < $num; $c++) {
    echo $data[$c] . "<br>\n";
    }
    }
    fclose($handle);
    ?>


    con data[] fa l'output delle informazioni su ogni riga. Prima del ciclo piu' interno potresti inserire una cosa del tipo
    echo "INSERT INTO tabella values("
    e dopo il ciclo piu' esterno

    echo ");";

    fammi vedere come ti esce l'output che lo elaboriamo insieme

    fammi sapere

  8. #8
    Guest

    Question

    premetto che io nella vita programmo in c++ o c# e che php sto cominciando ora a guardarlo... cmq io pensavo potesse funzionare questo:

    <?php require_once('../Connections/***.php'); # si connette al database
    ?>

    <?php
    $row = 1;
    $handle = fopen("test.csv", "r");
    while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
    $num = count($data);
    echo "<p> $num fields in line $row: <br /></p>\n";
    $row++;
    $insertSQL = sprintf("INSERT INTO prestiti (id_libro) VALUES ");
    for ($c=0; $c < ($num-1); $c++) { # num-1 cosi l'ultima non mette , ma ;
    $insertSQL =+ $data[$c] . ", ";
    }
    $insertSQL =+ $data[$c] . ";";
    mysql_select_db($database_sitoweb, $sitoweb);
    $Result1 = mysql_query($insertSQL, $sitoweb) or die(mysql_error());
    }
    fclose($handle);
    ?>

    ora, a me dice:

    " 4 fields in line 1:
    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 '0' at line 1"

    line 1? la connessione al db??? help!!! ;)
    Ultima modifica di perry82 : 17-08-2004 alle ore 19.33.29

  9. #9
    Guest

    Predefinito

    Anziche' fare la query fai l'echo di quello di cui tu vorresti fare la query. Nel tuo caso e' $insertSql cosi' vedi cosa stai inserendo!

    fammi sapere

  10. #10
    Guest

    Predefinito

    perfetto! funziona benissimo!
    l'unico problema era il fatto che io usavo =+ che non era propriamente standard! appena ho 2 secondi di tempo gli do una sistematina x renderlo universale e poi lo posto

  11. #11
    Guest

    Predefinito

    si in effetti la concatenazione si fa con .= (non ci avevo fatto caso neanche io. Questa si chiama Deformazione Professionale Da C) ;)))

    Facci sapere

Regole di scrittura

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