ho una necessità un po' particolare: devo "dare in pasto" a mysql un file csv composto da tante righe come la seguente
pasta aproteica;aproten;5,95000;5,05750;9803
il separatore di campo è il ";".
in mysql il tipo di carattere per ogni campo è "text" e il form che utilizzo popola correttamente la tabella; questo è la parte di form in php che popola la tabella:
il problema è che ho bisogno che i campi WPREZZOMINSAN E WPREZZOAPPLICATO siano numerici e non testuali, per poter poi far eseguire da php delle operazioni matematiche: impostando ogni tipo di numero (decimal, float, etc..) l'inserimento non va a buon fine, cioè la tabella si popola di valori sballati.
probabilmente è quella virgola fra l'intero e il decimale del campo WPREZZO*** che manda in confusione l'interprete.
a qualcuno viene in mente qualche soluzione???
pasta aproteica;aproten;5,95000;5,05750;9803
il separatore di campo è il ";".
in mysql il tipo di carattere per ogni campo è "text" e il form che utilizzo popola correttamente la tabella; questo è la parte di form in php che popola la tabella:
PHP:
if (isset($_POST['upfile'])){
// check feilds are not empty
if(get_file_extension($_FILES["uploaded"]["name"])!= 'csv')
{
$error[] = 'è possibile caricare solo file .csv';
}
if (!$error){
$tot = 0;
$handle = fopen($_FILES["uploaded"]["tmp_name"], "r");
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
for ($c=0; $c < 1; $c++) {
//only run if the first column if not equal to firstname
if($data[0] !='firstname'){
$oggi = (date("Y-m-d H:i:s"));
mysql_query("INSERT INTO WEBCARE(
WDESCRIZIONE,
WEAN,
WGMP,
WDITTA,
WCONFMINSAN,
WPREZZOMINSAN,
WPREZZOAPPLICATO,
)VALUES(
'".mysql_real_escape_string($data[0])."',
'".mysql_real_escape_string($data[1])."',
'".mysql_real_escape_string($data[2])."',
'".mysql_real_escape_string($data[3])."',
'".mysql_real_escape_string($data[4])."',
'".mysql_real_escape_string($data[5])."',
'".mysql_real_escape_string($data[6])."'
)")or die(mysql_error());
}
$tot++;}
}
fclose($handle);
il problema è che ho bisogno che i campi WPREZZOMINSAN E WPREZZOAPPLICATO siano numerici e non testuali, per poter poi far eseguire da php delle operazioni matematiche: impostando ogni tipo di numero (decimal, float, etc..) l'inserimento non va a buon fine, cioè la tabella si popola di valori sballati.
probabilmente è quella virgola fra l'intero e il decimale del campo WPREZZO*** che manda in confusione l'interprete.
a qualcuno viene in mente qualche soluzione???