Autor
|
Tema: Cargar archivo de excel para actualizar base de datos ?? (Leído 6,871 veces)
|
HDS02
Desconectado
Mensajes: 20
|
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 <?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.csvNo estoy seguro si así este bien la estructura del archivo Alguna sugerencia?? Gracias.
|
|
|
En línea
|
|
|
|
crazykenny
|
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
Mensajes: 20
|
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
Mensajes: 173
|
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í: 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
Mensajes: 20
|
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í: 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
|
|
|
|
|
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,230
|
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,778
|
8 Octubre 2006, 04:35 am
por MaLkAvIaN_NeT
|
|
|
ACTUALIZAR BASE DE DATOS SQL
« 1 2 »
Programación Visual Basic
|
70N1
|
16
|
8,659
|
20 Marzo 2008, 23:22 pm
por ((( SPAWN )))
|
|
|
Visual C++ [Cargar archivo excel]
Programación C/C++
|
michelmarques
|
2
|
6,930
|
6 Julio 2011, 17:46 pm
por michelmarques
|
|
|
crear diccionario a trtaves base de datos archivo excel
Hacking
|
alvarogemelo
|
3
|
5,528
|
4 Abril 2017, 14:56 pm
por hackescor
|
|