elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Cargar archivo de excel para actualizar base de datos ??
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Cargar archivo de excel para actualizar base de datos ??  (Leído 6,844 veces)
HDS02

Desconectado Desconectado

Mensajes: 20



Ver Perfil
Cargar archivo de excel para actualizar base de datos ??
« en: 12 Abril 2011, 20:35 pm »

Buen día,
Me trabe con un código php, a ver si alguien me puede ayudar, lo que ocupo es actualizar una base de datos con un archivo de Excel (.csv) encontré un script que parece ser bueno para mi caso, lo probé y parece que si envía datos a la tabla, pero no los que me interesa que envié, en mi tabla tengo un campo llamado precio y solo me interesa que actualice ese campo los demás no. Este es el código

Código:
<?php
include("connect.php");
$row = 1;
$handle = fopen("productos1.csv", "r");
$micolumna = array();
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
$db="UPDATE productos SET precio='".$data[$c]."' WHERE producto_id='".$row."'";
mysql_query($db) or die(mysql_error());
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />";
}
$micolumna[] = $data[1];
}
fclose($handle);
var_dump ($micolumna);
unset ($data);
?>

Como verán estuve jugando con las variables para tratarlas de enviar al usar el UPDATE pero no me funciona, no sé en que este mal o si es la forma correcta de hacerlo o no. 

Cualquier cosa les adjunto el archivo que me interesa agregar http://www.dissolweb.com/productos2.csv

No estoy seguro si así este bien la estructura del archivo 
Alguna sugerencia??  Gracias.


En línea

crazykenny


Desconectado Desconectado

Mensajes: 4.238



Ver Perfil WWW
Re: Cargar archivo de excel para actualizar base de datos ??
« Respuesta #1 en: 12 Abril 2011, 21:05 pm »

Bueno, lo mio no es que sea precisamente PHP; es mas, solo programo en Blitz 3D, un editor de juegos tipo Basic, pero se me ocurre que siempre puedes "cargar" la informacion del excel en memoria poniendolos todos en una matriz de dos niveles, y luego en esa matriz, pues insertar los datos nuevos que te interesen, para luego volver a guardarlo todo en el archivo excel; este seria el metodo "lento"; y, el metodo rapido, seria hacer un bucle FOR/NEXT dentro de otro bucle FOR/NEXT (vamos, la misma rutina para cargar/guardar datos que en el caso anterior) para leer el archivo excel y que, cada vez que cargue un dato cualquiera, lo guarde en un archivo diferente y, llegados a un determinado valor, puedes hacer que solo lea y luego que se limite a, en vez de guardar los datos leidos, guarde los datos que estan en memoria, hasta llegar al valor pertinente, donde se volveria al proceso de, donde cada vez que lea algo, lo escriba en el otro archivo, y, cuando termines de "volcar" todos los datos en el archivo nuevo, puedes hacer dos cosas; o eliminar el primer archivo y cambiarle el nombre al archivo nuevo para que tenga el mismo nombre que el primero desde el programa de forma automatica, o bien volver a hacer un volcado desde el archvio nuevo al viejo, para luego eliminar el segundo archivo al cual has volcado inicialmente el contenido con los valores modificados.
De todas formas, recordar que, a fin de cuentas, EXCEL trabaja con una matriz de dos niveles, o es lo que creo.
Saludos.


En línea

A nivel personal, lo que me da mas miedo no son los planteamientos y acciones individuales, sino las realizadas en grupo, ya que estas ultimas pueden acabar con consecuencias especialmente nefastas para todos.
Se responsable, consecuente y da ejemplo.
https://informaticayotrostemas.blogspot.com/

Mi canal de Youtube:

https://www.youtube.com
HDS02

Desconectado Desconectado

Mensajes: 20



Ver Perfil
Re: Cargar archivo de excel para actualizar base de datos ??
« Respuesta #2 en: 13 Abril 2011, 01:21 am »

Bueno, lo mio no es que sea precisamente PHP; es mas, solo programo en Blitz 3D, un editor de juegos tipo Basic, pero se me ocurre que siempre puedes "cargar" la informacion del excel en memoria poniendolos todos en una matriz de dos niveles, y luego en esa matriz, pues insertar los datos nuevos que te interesen, para luego volver a guardarlo todo en el archivo excel; este seria el metodo "lento"; y, el metodo rapido, seria hacer un bucle FOR/NEXT dentro de otro bucle FOR/NEXT (vamos, la misma rutina para cargar/guardar datos que en el caso anterior) para leer el archivo excel y que, cada vez que cargue un dato cualquiera, lo guarde en un archivo diferente y, llegados a un determinado valor, puedes hacer que solo lea y luego que se limite a, en vez de guardar los datos leidos, guarde los datos que estan en memoria, hasta llegar al valor pertinente, donde se volveria al proceso de, donde cada vez que lea algo, lo escriba en el otro archivo, y, cuando termines de "volcar" todos los datos en el archivo nuevo, puedes hacer dos cosas; o eliminar el primer archivo y cambiarle el nombre al archivo nuevo para que tenga el mismo nombre que el primero desde el programa de forma automatica, o bien volver a hacer un volcado desde el archvio nuevo al viejo, para luego eliminar el segundo archivo al cual has volcado inicialmente el contenido con los valores modificados.
De todas formas, recordar que, a fin de cuentas, EXCEL trabaja con una matriz de dos niveles, o es lo que creo.
Saludos.


Q tal compañero, gracias por contestar pero la verdad no entiendo muy bien.
En línea

Feedeex

Desconectado Desconectado

Mensajes: 173


Ver Perfil
Re: Cargar archivo de excel para actualizar base de datos ??
« Respuesta #3 en: 13 Abril 2011, 03:47 am »

Amigo, ¿estás usando el UPDATE antes que el for o me equivoco?. Es decir cuando lo utilizás no tiene valor creo.
Podes probar con algo así:

Código:
for ($c=0; $c < $num; $c++) { 
echo $data[$c] . "<br />";
$db="UPDATE productos SET precio='".$data[$c]."' WHERE producto_id='".$row."'";
mysql_query($db) or die(mysql_error());
}

No estoy seguro de todas formas. Vi que hay un while antes, pero el UPDATE de todas formas no deja de estar antes que el for.
En línea

HDS02

Desconectado Desconectado

Mensajes: 20



Ver Perfil
Re: Cargar archivo de excel para actualizar base de datos ??
« Respuesta #4 en: 14 Abril 2011, 05:04 am »

Amigo, ¿estás usando el UPDATE antes que el for o me equivoco?. Es decir cuando lo utilizás no tiene valor creo.
Podes probar con algo así:

Código:
for ($c=0; $c < $num; $c++) { 
echo $data[$c] . "<br />";
$db="UPDATE productos SET precio='".$data[$c]."' WHERE producto_id='".$row."'";
mysql_query($db) or die(mysql_error());
}

No estoy seguro de todas formas. Vi que hay un while antes, pero el UPDATE de todas formas no deja de estar antes que el for.

Tenias razón, gracias.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como hago para cargar desde una base de datos « 1 2 »
Programación Visual Basic
love_magic 10 5,208 Último mensaje 25 Julio 2006, 17:25 pm
por Hans el Topo
Actualizar base datos en VB .NET
.NET (C#, VB.NET, ASP)
el_cantante 1 13,773 Último mensaje 8 Octubre 2006, 04:35 am
por MaLkAvIaN_NeT
ACTUALIZAR BASE DE DATOS SQL « 1 2 »
Programación Visual Basic
70N1 16 8,641 Último mensaje 20 Marzo 2008, 23:22 pm
por ((( SPAWN )))
Visual C++ [Cargar archivo excel]
Programación C/C++
michelmarques 2 6,923 Último mensaje 6 Julio 2011, 17:46 pm
por michelmarques
crear diccionario a trtaves base de datos archivo excel
Hacking
alvarogemelo 3 5,510 Último mensaje 4 Abril 2017, 14:56 pm
por hackescor
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines