Código CSV:
Ver original
900009;200104;;1;00002;01/04/2001;MARROQUINERIA NILDA;1;11.75;CO1;1;900000398;11.75;20000;8;29/06/2004;16:33;LAURE;
recibo en PHP:
Código PHP:
Ver original
$file=$_FILES['userfile']; if ($file['type'] == 'application/vnd.ms-excel') { $fpname = $file[ 'tmp_name' ]; $row = 0; { $socio = $data[0] ; $periodo = $data[1]; $forma_pago = $data[2]; $factura = $data[3]; $articulo = $data[4]; $vencimiento = $data[5]; $totalcuota = $data[14]; $cuota = $data[7]; $importe = $data[8]; $tipo = $data[9]; $comprobante = $data[10]; $recpag = $data[11]; $concepto = $data[13]; $fecha = $data[15]; $hora = $data[16]; $opera_id = $data[17]; $observacion = $data[6]; print "Procesando linea: $row <br>"; #$sql = "INSERT `sistema_cuota` (`socio`,`periodo`,`forma_pago` ,`factura`,`articulo`,`vencimiento`,`totalcuota`,`cuota`,`importe`,`tipo`,`comprobante`,`recpag`,`concepto`,`fecha`,`hora`,`opera_id`,`observacion`) values ('$socio','$periodo','$forma_pago','$factura','$articulo','$vencimiento','$totalcuota','$cuota','".$importe."','$tipo','$comprobante','$recpag','$concepto','$fecha','$hora','$opera_id','$observacion') "; echo $importe; $sql = "INSERT sistema_cuota (`importe`) values ('$importe')"; print "Linea procesado: $row , con exito!<br>---------------------------------------------------<br>"; } }
enfoncandonos en $data[8] o $importe su valor es 11.75
en MySQL al campo importe le asigno DOUBLE (4,2) y si inserto:
$sql = "INSERT sistema_cuota (`importe`) values ('$importe')";
me inserta 0.00
si lo asigno como FLOAT o DECIMAL lo mismo
0.00
Pero si lo asigno TEXT lo toma bien.
Lo mismo me pasa con los campos INT y DATE cosa que es un problema.
Cual es el problema?
Lo raro es que uso el mismo codigo para otro CSV y si me lo toma...