Foros del Web » Programando para Internet » PHP »

Excel->Mysql

Estas en el tema de Excel->Mysql en el foro de PHP en Foros del Web. Hola, antes de nada, felicitaros por el foro y la página Web, son de gran ayuda para la gente que empezamos en todo esto. El ...
  #1 (permalink)  
Antiguo 12/10/2003, 17:24
 
Fecha de Ingreso: octubre-2003
Mensajes: 46
Antigüedad: 20 años, 6 meses
Puntos: 0
Pregunta Excel->Mysql

Hola, antes de nada, felicitaros por el foro y la página Web, son de gran ayuda para la gente que empezamos en todo esto.
El problema que tengo es que tego una oja de Excel con estos datos:
-Nombre, Apellidos, Tiempo_de_carrera, Año, Etc

Es una lista con bastante gente y me interesaría pasarla a Mysql, para luego crear un script en PHP para hacer consultas a la BD. E intentado hacer algunas cosas que e leido en el foro, como pasar la hoja a CVS o usar el programa Mysqlstudio, pero nada, me hace unas tablas muy raras que no las entiende ni cristo. No existe alguna forma de transformar esos datos a algo parecido a esto:

Insert Into Login (Nombre, Apellidos, Tiempo_de_carrera, Año) Values ('Nombre', 'Apellidos, Tiempo_de_carrera', 'Año')

para meterlo en el Mysql sin problemas.
Saludos...
  #2 (permalink)  
Antiguo 12/10/2003, 18:01
Avatar de execon  
Fecha de Ingreso: enero-2002
Ubicación: Temuco
Mensajes: 179
Antigüedad: 22 años, 3 meses
Puntos: 0
guarda tu excel como texto con tabulaciones y lee un poco sobre como importar datos desde textos a una tabla de una bd mysql.

es fácil hacerlo.
__________________
----------------------------------
APP Developer
[email protected]
----------------------------------
  #3 (permalink)  
Antiguo 12/10/2003, 19:21
 
Fecha de Ingreso: septiembre-2002
Mensajes: 122
Antigüedad: 21 años, 7 meses
Puntos: 0
Guarda tu hoja de excel como un archivo csv y Puedes utilizar Mysql-Front para hacer la importación, esta aplicación cuenta con una opción para importar archivos de este tipo. Otra forma y utilizando tambien esta aplicación es a través de ODBC.
  #4 (permalink)  
Antiguo 12/10/2003, 19:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
phpMyadmin también puede importar datos en formato CVS ..

Y GUI's para Msyql (windows) tipo:

www.mysqlstudio.com
www.mysqlmanager.com

Importan directamente tus .xls hacia Mysql con asistentes que te irán preguntando que columnas de tu .xls necesitas .. y a que columanas de tu tabla Msyql corresponde importar el dato ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 12/10/2003, 20:09
 
Fecha de Ingreso: octubre-2003
Mensajes: 46
Antigüedad: 20 años, 6 meses
Puntos: 0
Ok's muchas gracias a todos, bueno e probado estos programas:
SQLyog, MySQLFront, mysqlmanager, mysqlstudio, y el phpMyadmin, y me da que algo estoy haciendo mal, el archivo .CVS que creo, queda así:
Nombre;Apellidos;Tiempo_de_carrera;Año
Separados con ";" y al importar pues algun dato lo a importado bien pero otros no, me salen vacios o con numeros que no se de donde salen, mañana seguire probando, seguro que sera algo de la configuración del import.
Saludos.

PD: en los programas que dan la opción de pasar la hoja Excel directamente a la BD, no me a funcionado ni uno, con CVS todavia e podido entrar alguna cosa.
a la cama

Última edición por Yukas; 12/10/2003 a las 20:14
  #6 (permalink)  
Antiguo 12/10/2003, 22:04
 
Fecha de Ingreso: septiembre-2003
Mensajes: 248
Antigüedad: 20 años, 7 meses
Puntos: 2
una idea

Yo he tenido un problema parecido con un archivo de más de 2000 ergistros y lo que hecho (y no se si es lo mejor) es exportar el archivo de excel como txt con texto delimitado con tablulaciones (\t) aunque lo puedes hacer sin problemas con ";", ese archivo lo leo desde una pagina .php para que me muestre un echo que luego puedo copiar y guardarlo como .sql el cual puedo ejecutar tantas veces quiera por si tenga problemas posteriores en mi BD
el código que tengo para mi pagina es:
<table border="0" width="150%">

<?php
$fp = fopen("alumnos.txt", "r");
while (!feof($fp)) {
$buffer = fgets($fp, 4096);
$cad=explode("\t",$buffer);
echo "<tr><td>";
echo "insert into usuario(usr_codigo,tip_codigo,usr_nombre,usr_apell idop,usr_apellidom,usr_estado) values(".$cad[0].",1,".$cad[3].",".$cad[1].",".$cad[2].",0);";
echo "</td></tr>";

}
fclose ($fp);

?>
</table>
al ejecutar me muestra una pagina diciendo:
insert into alumno("A001",1,"Juan","Bances","Torres",0);
esto lo puedo copiar y pegarlo en el block de notas y guardarlo como .sql
otra cosa que puedes hacer es guardarlo directamente en un archivo .sql (via codigo .php)
Suerte!
__________________
Jose A
  #7 (permalink)  
Antiguo 13/10/2003, 03:12
 
Fecha de Ingreso: agosto-2003
Mensajes: 102
Antigüedad: 20 años, 8 meses
Puntos: 0
bueno, yo me encontre con un caso similar hace poco y prepare este script, me funciono perfecto, gracias a la ayuda de la gente del foro, funciona para archivos csv, o sea que todos los datos que pertenecen a una persona estan en la misma linea, separados por ".....","......","......"

Código PHP:
//Abrimos el archivo
$archivo fopen ("datos.csv""r");
//Comprobamos que existe
if (!$archivo) {
    echo 
"<p>Imposible abrir el archivo.\n";
    exit;
}
//Dibujamos el encabezado de la tabla
echo "<table cellspacing=\"0\" border=\"1\"><tr><td>&nbsp;</td><td>Nombre</td><td>Calle</td><td>Ciudad</td><td>Codigo Postal</td></tr>";
//Hacemos un bucle que lea linea por linea
while ($salida fgetcsv ($archivo1000",")) {
    
$cont++;
//Marcamos los caracteres no valido para guardarse en la BD
    
foreach ($salida as $k => $v){
        
$salida[$k] = addslashes($salida[$k]);
    }
//Inserta los datos a la BD,
    
mysql_query("INSERT INTO entidades ( id, nom, carrer, poblacio, codi) VALUES ('', '".$salida[0]."', '".$salida[1]."', '".$salida[2]."', '".$salida[3]."')"$enlacebd);
//Mostrabmos los datos insertados por pantalla
    
echo "<tr><td>$cont</td><td bgcolor=\"$color\">$salida[0]</td><td bgcolor=\"$color\">$salida[1]</td><td bgcolor=\"$color\">$salida[2]</td><td bgcolor=\"$color\">$salida[3]</td></tr>";
}
echo 
"</table><br>";

//Cerramos el archivo
fclose($fitxer); 
bueno, puedes intentar ajustarlo a tus necesidades, eso si, antes crea la tabla en la base de datos manualmente.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 16:24.