Hola a todos.
Tengo un script en PHP que sube un archivo CSV (Excel) y lo inserta en la BD, pero el problema es que lo inserta así:
Código PHP:
Tabla: 'personas'
NOMBRE DNI (Campos)
PEDRO,789 (Valores)
JUAN,548
MARIA,123
Cuando debería ser así:
Código PHP:
NOMBRE DNI (Campos)
PEDRO 789 (Valores)
JUAN 548
MARIA 123
Además de que cuando ejecuto el script me marca algunos errores como éstos, ésto es ya después de subir los archivos, como mencioné si me los inserta en la BD, pero no correctamente:
Código PHP:
Notice: Undefined variable: uploaddir in C:wampwwwsitiopruebacsv2.php on line 17
File sucessfully uploaded to Libro2.csv
Notice: fgetcsv() [function.fgetcsv]: delimiter must be a single character in C:wampwwwsitiopruebacsv2.php on line 24
Notice: Undefined offset: 1 in C:wampwwwsitiopruebacsv2.php on line 26
INSERT into personas(NOMBRE,DNI) values('NOMBRE,DNI','')
Notice: fgetcsv() [function.fgetcsv]: delimiter must be a single character in C:wampwwwsitiopruebacsv2.php on line 24
Notice: Undefined offset: 1 in C:wampwwwsitiopruebacsv2.php on line 26
INSERT into personas(NOMBRE,DNI) values('MARIA,123','')
Notice: fgetcsv() [function.fgetcsv]: delimiter must be a single character in C:wampwwwsitiopruebacsv2.php on line 24
Notice: Undefined offset: 1 in C:wampwwwsitiopruebacsv2.php on line 26
INSERT into personas(NOMBRE,DNI) values('JOSE,456','')
Notice: fgetcsv() [function.fgetcsv]: delimiter must be a single character in C:wampwwwsitiopruebacsv2.php on line 24
Notice: Undefined offset: 1 in C:wampwwwsitiopruebacsv2.php on line 26
INSERT into personas(NOMBRE,DNI) values('PEDRO,789','')
Notice: fgetcsv() [function.fgetcsv]: delimiter must be a single character in C:wampwwwsitiopruebacsv2.php on line 24
Import done
También cabe la posibilidad de que mi archivo CSV pueda estar mal... cuando lo abro con bloc de notas está así:
Código PHP:
NOMBRE,DNI
MARIA,123
JOSE,456
PEDRO,789
SCRIPT CORREGIDO, FUNCIONA:
Código PHP:
Ver original<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<body>
<?php
require_once('Connections/conex.php');
//DbOpen();
echo '<form action="' . $_SERVER['PHP_SELF'] . '" method="post" enctype="multipart/form-data">';
if(isset($_POST['submit'])) {
echo "File sucessfully uploaded to " . $uploaddir . basename($_FILES['filename']['name']) . "<BR>"; $filename = "Libro2.csv";
$handle = fopen($filename, 'r'); } else {
echo "Error : " . $uploaddir . basename($_FILES['filename']['name']) . '\n' . $_FILES['filename']['error'] . "<BR>"; }
while (($data = fgetcsv($handle, 4096, ',')) !== FALSE) { $import="INSERT into personas(NOMBRE,DNI) values('$data[0]','$data[1]')";
echo $import;
echo "<br>";
}
print "Import done";
}
else {
print "Type file name to import:<br>";
print "<input type='file' name='filename' size='20'><br>";
print "<input type='submit' name='submit' value='submit'>";
}
$import="select * from personas";
//DbClose();
?>
Espero puedan ayudarme, se los agradezco de antemano.
Saludos.
EDIT: Ya lo resolví, sólo corrijo el script en php por si le sirve a alguien en un futuro.
Saludos.