Foros del Web » Programando para Internet » PHP »

...Ahora la tabla de Excel a Mysql

Estas en el tema de ...Ahora la tabla de Excel a Mysql en el foro de PHP en Foros del Web. Bueno el proceso de pasar una tabla de MYSQL a ---> Excel ya lo hice correctamente. Aca va el codigo por si alguien lo necesite.. ...
  #1 (permalink)  
Antiguo 29/10/2004, 08:16
Avatar de JuanKa  
Fecha de Ingreso: septiembre-2004
Mensajes: 468
Antigüedad: 13 años, 3 meses
Puntos: 1
...Ahora la tabla de Excel a Mysql

Bueno el proceso de pasar una tabla de MYSQL a ---> Excel ya lo hice correctamente.

Aca va el codigo por si alguien lo necesite..

<? include("Php/config.php");
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=archivo.xls");
$consulta=mysql_query("SELECT * FROM articulos",$conectar) ;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table width="2000" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<th >Codigo</th> <th >Sub</th> <th >Fam</th>
<th >Nombre</th> <th >Modelo</th> <th >Marca</th>
<th >Web</th> <th >PrecioV</th> <th >Novedad</th>
<th >Oferta</th> <th >Proveedor</th> <th >Precio C </th>
<th >Imagen</th>
</tr>
<? while($row = mysql_fetch_array($consulta)){ ?>
<tr>
<td><? echo $row["cod_art"]; ?></td>
<td><? echo $row["cod_sub_fam"]; ?></td>
<td><? echo $row["cod_fam"]; ?></td>
<td><? echo $row["nom_art"]; ?></td>
<td><? echo $row["mod_art"]; ?></td>
<td><? echo $row["mar_art"]; ?></td>
<td><? echo $row["web_art"]; ?></td>
<td><? echo $row["pre_art"]; ?></td>
<td><? echo $row["nov_art"]; ?></td>
<td><? echo $row["ofe_art"]; ?></td>
<td><? echo $row["pro_art"]; ?></td>
<td><? echo $row["pco_art"]; ?></td>
<td><? echo $row["ima1"]; ?></td>
</tr>
<? }?>
</table>
</body>
</html>


Pero ahora como haria para regresar esa tabla a MYSQL, es decir en Order inverso EXCEL ---> MYSQL.

He visto este codigo pero no se cual es el proceso.


<?php mysql_query("LOAD DATA LOCAL INFILE 'Archivos/archivo.xls' INTO TABLE Usuarios FIELDS TERMINATED BY ';'"); ?>

Cual es la finalidad de esto: Es que quiero modificar el precio de venta para ciertos articulos. pero como ustedes ven el codigo anterior he puesto todos los campos, pero solo quiero algunos de ellos por ejemplo : Codigo, nombre, precio que es el + importate y quisiera saber :

1. Si solo uso estos campos... afectara en algo al resto de los campos..????
2. En cuanto a la estructura de la tabla puede que varie( me refiero a los tipos de varibles y de almacenamiento)???
3. El mas importante. ¿Cual es el proceso para convertir el archivo Excel(en el generado se llama archivo.xls) a MYSQL? .

Gracias.
  #2 (permalink)  
Antiguo 29/10/2004, 08:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si has generado una tabla HTML desde PHP para hacer "Mysql -> Exel" .. el orden inverso: "Exel -> Mysql" .. tendrás que exportar planilla (hoja de cálculo) como CVS separado por ; para poder usar el código PHP+Mysql que indicas (el LOAD ....)

1) De esa forma . .vas a actualizar toda tu BD completa .. Es decir, si "bajastes" a Exel toda tu tabla (BD Mysql) .. ahí estará todo tal cual si modificas otros datos.

En resumen .. no debería preocuparte de eso .. actualiza todo.

2) Ese comando de Mysql "LOAD ... " sólo carga "datos" en la tabla que especifiques . .no crea tablas ni modifica estructura (ni de campos ni nada) .. El mayor problema que puedas tener es a la hora de que te equivoques en Exel en un campo tipo "numerico" (definido así en tu tabla de Mysql por ejemplo) e ingreses otro tipo de dato.

3) No entendí .. Pero si te refires a que hacer en Exel para dejar el archivo listo para que lo uses en tu "LOAD ...." de SQL .. ya te comenté que deberías exportarlo a CVS desde Exel y posteriormente hacerlo llegar al servidor; ya sea que lo subes a mano por FTP .. o creas un formulario de "Upload" para subir el archivo y procesarlo con PHP.

Un saludo,
  #3 (permalink)  
Antiguo 29/10/2004, 10:16
Avatar de JuanKa  
Fecha de Ingreso: septiembre-2004
Mensajes: 468
Antigüedad: 13 años, 3 meses
Puntos: 1
Hola Cluster...

He ejecutado este script para pasar de un archivo separado por comas de nombre archivo_csv.csv a una tabla que se encuentra dentro de la base de datos de nombre Usuarios y dentro de esta hay varias tablas dentro de las cuales esta la tabla Articulos y es alli donde quiero colocar lo que proviene dentro del archivo csv, pero no hace nada sigue igual la tabla y cuando ejecuto este script :


<?php
include("Php/config.php");

mysql_query("LOAD DATA LOCAL INFILE 'Archivos/archivo_csv.csv' INTO TABLE articulos FIELDS TERMINATED BY ';'") or die (mysql_error());

?>

Obtengo esta mensaje en el navegador

The used command is not allowed with this MySQL version.

QUe puede ser esto.

Gracias nuevamente.
  #4 (permalink)  
Antiguo 31/10/2004, 09:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Realmente no sé desde que versión de Mysql está disponible "LOAD DATA ...." pero .. podrías revisarlo en www.mysql.com (en su manual de referencia ..).

Si no puedes hacerlo así tendrás que usar PHP para leer tu archivo (con funciones como fgetcvs() y similares)

Eso sí .. recuerda que tanto usando "LOAD DATA ..." como si lo haces "a mano" vía PHP integro .. los datos que vas a importar son para UNA sóla tabla .. no várias (salvo que de alguna forma uses algún tipo de psudo-código para determinar donde están los datos de una tabla y los de otras tablas).

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:23.