Extraer datos de archivo txt a MySQL
¿Por qué no me captura y graba? El código me muestra en pantalla... Linea por linea lo que hay en el archivo datos.txt... Osea que esta parte esta buena...
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "
<p> $num fields in line $row: <br /></p>
\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n"; // perfecto... Lo muestra bien...
}
Quiero capturar lo 20 primeros caracteres de cietas lineas... Y grabarlos en la tabla datos. Hace la grabación pero con los datos en blanco...
No entiendo muy bien lo que hace esto:
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
¿Creo qué imprime en pantalla carácter por carácter? Entonces la captura debe estar dentro de este for?. Si es así, ¿Cómo la haría?
el codigo completo es....
<?php require_once('Connections/miconexion.php'); ?>
......
<?php
$row = 1;
$handle = fopen("datos.txt", "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "
<p> $num fields in line $row: <br /></p>
\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
if ($row=310){
$dpto=substr($data[$c],1,20);
}
if ($row=319){
$dpto1=substr($data[$c],1,20);
}
if ($row=327){
$dpto2=substr($data[$c],1,20);
}
if ($row=347){
$dpto3=substr($data[$c],1,20);
}
}
fclose($handle);
?>
<?
// grabar en la tabla datos
$sQuest = "INSERT INTO datos (var1, var2, var3, var4) values ('$dpto', '$dpto1', '$dpto2', '$dpto3')";
if(!mysql_query($sQuest))
echo "Error al insertar datos";
else
?>
</body>
--------------------------------------------------------------------
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "
<p> $num fields in line $row: <br /></p>
\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n"; // perfecto... Lo muestra bien...
}
Quiero capturar lo 20 primeros caracteres de cietas lineas... Y grabarlos en la tabla datos. Hace la grabación pero con los datos en blanco...
No entiendo muy bien lo que hace esto:
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
¿Creo qué imprime en pantalla carácter por carácter? Entonces la captura debe estar dentro de este for?. Si es así, ¿Cómo la haría?
el codigo completo es....
<?php require_once('Connections/miconexion.php'); ?>
......
<?php
$row = 1;
$handle = fopen("datos.txt", "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "
<p> $num fields in line $row: <br /></p>
\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
if ($row=310){
$dpto=substr($data[$c],1,20);
}
if ($row=319){
$dpto1=substr($data[$c],1,20);
}
if ($row=327){
$dpto2=substr($data[$c],1,20);
}
if ($row=347){
$dpto3=substr($data[$c],1,20);
}
}
fclose($handle);
?>
<?
// grabar en la tabla datos
$sQuest = "INSERT INTO datos (var1, var2, var3, var4) values ('$dpto', '$dpto1', '$dpto2', '$dpto3')";
if(!mysql_query($sQuest))
echo "Error al insertar datos";
else
?>
</body>
--------------------------------------------------------------------
1 respuesta
Respuesta de davidcortesb
1