Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Files CVS in MysQL

  1. #1

    Files CVS in MysQL

    Ciao a tutti , ho creato un files CVS contenete delle rghe cosi' composte :

    1234567890,Pippo ,45.56
    2345678910,Minni,34.45

    Il primo e' il codice , il secondo la descrizione e il terzo il prezzo.

    Ho creato questo programma per la lettura del files e l'iserimento dei dati in database MySql

    Ma non funzion perche' ?

    Help ....

    Per l'apertura del database non mi da nessun errore.

    Grazie .. Programma.

    $db_host = "localhost";
    $db_user = "root";
    $db_pass = "";
    $db_name = "stm";
    $db_tabb = "stm";
    $db = mysql_connect($db_host,$db_user,$db_pass);//Connessione Server
    if($db==FALSE)
    echo"Errore di connessione";
    if (mysql_select_db($db_name,$db)==FALSE)
    echo"Errore di Apertura files";
    $fh=fopen('COMPOS.CSV','rb');
    for($info=fgetcsv($fh,1024); ! feof($fh); $info=fgetcsv($fh,1024)){
    $sql="INSERT INTO stm (art,desc,prezzo) VALUES ($info[0],$info[1],$info[2])";
    if (mysql_query($sql, $db))
    print "Inserito Articolo : $info[0] $info[1] $info[2]";
    else
    echo "---------------------------> Errore durante l'inserimento";
    print "
    ";
    }
    fclose($fh);

  2. #2
    Prima di tutto ti faccio notare questo:

    Codice PHP:
     $sql="INSERT INTO stm (art,desc,prezzo) VALUES ($info[0],$info[1],$info[2])"
    Questo è errato, per quanto riguarda il prezzo non so ora se il . lo prenda bene, ma mi pare di si, i numeri con la virgola in programmazione sono un pò una scocciatura, perché alcuni linguaggi li vogliono con la , altri con il .

    Il problema vero sono i campi art e desc.

    Prima di tutto ti consiglio di racchiudere desc fra le quadre, perché è una parola riservata e potrebbe dare problemi.

    Inoltre devi racchiudere i due valori art e desc fra gli apici.

    Poi non hai considerato la possibilità che vi siano già degli apici nel valore, quindi se ti capita una stringa con l'apice in mezzo sei fregato lo stesso.

    Per farla breve dovresti scrivere così

    Codice PHP:
    $info[0]=str_replace("'","''",$info[0]);
    $info[1]=str_replace("'","''",$info[1]);
    $sql="INSERT INTO stm (art,[desc],prezzo) VALUES ('$info[0]','$info[1]',$info[2])"
    E cmq non so se ti dia problemi il numero col .

  3. #3
    Originariamente inviato da Debiru
    Prima di tutto ti faccio notare questo:

    Per farla breve dovresti scrivere così

    Codice PHP:
    $info[0]=str_replace("'","''",$info[0]);
    $info[1]=str_replace("'","''",$info[1]);
    $sql="INSERT INTO stm (art,[desc],prezzo) VALUES ('$info[0]','$info[1]',$info[2])"
    E cmq non so se ti dia problemi il numero col .
    Che intendi per il numero col ?

    Cmq. ho modificato come mi hai detto tu , ma in piu' ho tolto la colonna prezzo per vedere se era un problema di decimali , ma il risultato e' identico
    Allego Prog. ... non e' possibile che sia easyphp a crear problemi ?

    $info[0]=str_replace("'","''",$info[0]);
    $info[1]=str_replace("'","''",$info[1]);

    $sql="INSERT INTO stm (art,[desc]) VALUES ('$info[0]','$info[1]')";

  4. #4
    Ti consiglio allora di vedere l'errore dove te lo da e la sua descrizione, altrimenti è difficile aiutarti.

  5. #5
    Originariamente inviato da Debiru
    Ti consiglio allora di vedere l'errore dove te lo da e la sua descrizione, altrimenti è difficile aiutarti.

    :master: :master: ehmmmm come faccio a vedere il tipo di errore ?

    io sono solo all'inizio .

  6. #6
    Quando tu esegui questa pagina, ti accorgi del fatto che non inserisce il dato perché a video ti visualizza un qualche errore o solo perché non ti ritrovi il dato che credevi di aver inserito nel database?

  7. #7
    Originariamente inviato da Debiru
    Quando tu esegui questa pagina, ti accorgi del fatto che non inserisce il dato perché a video ti visualizza un qualche errore o solo perché non ti ritrovi il dato che credevi di aver inserito nel database?
    perche' questo if

    if (mysql_query($sql, $db))
    print "Inserito Articolo : $info[0] $info[1] $info[2]";
    else
    echo "---------------------------> Errore durante l'inserimento";
    print "
    ";

    mi stampa errore anziche : Inserito Articolo

    e cmq. se vado a vedere il database e' vuoto

  8. #8
    Non so se possa funzionare, ma prova a cambiare
    Codice PHP:
    if (mysql_query($sql$db))
    print 
    "Inserito Articolo : $info[0] $info[1] $info[2]";
    else
    echo 
    "---------------------------> Errore durante l'inserimento";
    print 
    "
    "

    in

    Codice PHP:
    if (mysql_query($sql$db))
    print 
    "Inserito Articolo : $info[0] $info[1] $info[2]";
    else
    echo 
    "---------------------------> Errore durante l'inserimento";
    echo 
    "
    Descrizione errore: "
    .mysql_error($db);
    print 
    "
    "

    Dovrebbe restituirti l'errore appena verificatosi

  9. #9
    Originariamente inviato da Debiru

    if (mysql_query($sql, $db))
    print "Inserito Articolo : $info[0] $info[1] $info[2]";
    else
    echo "---------------------------> Errore durante l'inserimento";
    echo "
    Descrizione errore: ".mysql_error($db);
    print "
    ";
    [/PHP]

    Dovrebbe restituirti l'errore appena verificatosi
    Si Funziona
    Pero' ho fatto un'ulteriore prova.
    Sono andato in phpmyadmin e ho inserito un'articolo a mano.
    Dopo aver inserito e' comparsa l'istruzione in SQL e ho premuto il tasto CREA CODICE PHP.
    Fatto questo ho inserito l'istruzione nel mio programmino e funzionaaaaa.

    Che e' cambiato ?

    BO!!!!!!

    Eccolo ... la differenza e' solo quelle piccoli accenti .
    Cmq. ora funzicaa.... grazie tante per l'aiuto e

    $sql="INSERT INTO `stm` (`art`, `desc`, `prezzo`) VALUES ('$info[0]','$info[1]','$info[2]')";
    if (mysql_query($sql, $db))
    print "Inserito Articolo : $info[0] $info[1] $info[2]";
    else
    echo "
    Descrizione errore: ".mysql_error($db);

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.