Apúntate a la Zona De Descargas Reservadas (ZDDR). Solo son 20 Euros
Con solo 20€ ayudarás
a mantener el foro.


Seguir a udias en Twitter
Directorio de Empresas de Foros de informática


Todo lo que sueñas, se puede diseñar.
We build your dreams.

 - Principal - Responder - Estadísticas - Registrarse - Buscar - Lista de usuarios -  - Zona de Descargas
 -Privacidad y política de cookies -
Ayuda al foro con tu donación

Búsqueda en los foros

Foros en Udias.com / PHP y MySQL / importar excel desde php a mysql
 Página:  1  2  »»
Autor Mensaje

Miembro

Asiduo

  Karma             785

#1 Publicado: 12 Ene 2010 23:24 - Editado por: zozer2404



hola nuevamente, consulta necesito importar datos desde un archivo xls a mysql atraves de un PHP

ya tengo la BDD creada con los campos necesarios para subir el archivo dejo los 2 archivos que tengo uno es un html que toma el archivo xls (UNO.HTML) y el otro es el php que insertar los registros (IMPORT.PHP). GRACIAS

pruebadeimportacion..zipArchivo adjunto: pruebadeimportacion..zip
 
import.PhpArchivo adjunto: import.Php
 

Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo


Administrador


  Karma               32083

#2 Publicado: 13 Ene 2010 08:05



Muchas gracias por la aportación. Es bueno tener estos códigosa a mano por si los necesitamos.

Un saludo
Juan Carlos


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Asiduo

  Karma             785

#3 Publicado: 13 Ene 2010 12:06



jcu ojala el aporte sirva pero sociate hay alguno errores por eso me gustaria que lo vieras y me lo pudieramos solucionar se agradece.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo


Administrador


  Karma               32083

#4 Publicado: 13 Ene 2010 12:41



Lo primero que se me ocurre, y sin entrar en harina, es que no estás recogiendo la variable que mandas del formulario, "file", a la página import.php
Al utilizar un tipo POST en el formulario, tendrás que regoger el nombre con un $_POST ¿No?


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Asiduo

  Karma             785

#5 Publicado: 13 Ene 2010 12:42



estimado, tanto probar y probar tengo el siguiente codigo que carga el archivo csv a mysql:

esta operativo.
PERO LO MALO es que el archivo csv debe estar dentro de la carpeta de mi servidor, como puedo hacer para pasarle el archivo???

<?php
function Conectarse()
{
if (!($link=mysql_connect("localhost","root","SEREMI_ XREGION"))) {
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db("importacion",$link)) {
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}
//$data[$c]=str_replace(";","', ", $data[$c])
$row = 1;
$handle = fopen("datos.csv", "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
$row++;
$cadena = "insert into xls(Campo1,Campo2,Campo3,Campo4) values(";
for ($c=0; $c < $num; $c++) {
if ($c==($num-1))
$cadena = $cadena."'".$data[$c] . "'";
else
$cadena = $cadena."'".$data[$c] . "',";
}

$cadena = $cadena.");";
echo $cadena."<br>";

$enlace=Conectarse();
$result=mysql_query($cadena, $enlace);
mysql_close($enlace);
}

fclose($handle);

?>
<h2>Se insertaron <?php echo $row ?> Registros en la tabla </h2>


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo


Administrador


  Karma               32083

#6 Publicado: 13 Ene 2010 12:56



Donde pones datos.csv, tienes que poner la regogida de la variable con la orden POST

$datos = ($_POST['file']);

y luego

$handle = fopen($datos, "r");


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Asiduo

  Karma             785

#7 Publicado: 13 Ene 2010 13:10



gracias

mira he hecho esto:

<?php
require("config.php");
$row = 1;
$datos = ($_POST['file']);
while ($data = fgetcsv ($fp, 1000, ";"))
{
$num = count ($data);
print " <br>";
$row++;
echo "$row- ".$data[0].$data[1].$data[2].$data[3];
$insertar="INSERT INTO xls (Campo1,Campo2,Campo3,Campo4) VALUES ('$data[0]','$data[1]','$data[2]','$data[3]')";
mysql_query($insertar);
}
fclose ($fp);
?>

al ejecutalarlo me sale el siguiente error:

Warning: fgetcsv() expects parameter 1 to be resource, null given in C:\xampp\htdocs\pruebadeimportacion.PHP on line 6

Warning: fclose(): supplied argument is not a valid stream resource in C:\xampp\htdocs\pruebadeimportacion.PHP on line 15


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo


Administrador


  Karma               32083

#8 Publicado: 13 Ene 2010 13:19



Por lo que pones, $datos debe de tener el mismo valor que $fp, ya que es el archivo que quieres procesar.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Asiduo

  Karma             785

#9 Publicado: 13 Ene 2010 13:31



sigo con errores, mira esto he hecho:

<?php
require("config.php");
$row = 1;
//$fp = fopen ("datos.csv","r");
$datos = $_POST("file"));
while ($data = fgetcsv ($datos, 1000, ";"))
{
$num = count ($data);
print " <br>";
$row++;
echo "$row- ".$data[0].$data[1].$data[2].$data[3];
$insertar="INSERT INTO xls (Campo1,Campo2,Campo3,Campo4) VALUES ('$data[0]','$data[1]','$data[2]','$data[3]')";
mysql_query($insertar);
}
fclose ($datos);
?>


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo


Miembro

Asiduo

  Karma             785

#10 Publicado: 13 Ene 2010 14:57



sociate as podido ver donde esta el error MIO, se agradeceria una respuesta, te comento que este PHP esta funcionando de maravillas con un archivo previamente cargado en la carpeta de raiz del sitio, pero mi idea es traer por metodo post un archivo que seleccione el usuario.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo


Administrador


  Karma               32083

#11 Publicado: 13 Ene 2010 16:14



Mira este ejemplo y comparalo con el que tu tienes, ves las diferencias y aplicalo.

$row = 1;
$datos = ($_POST['file']);
// asegurate de que $datos es de la forma carpeta/archivo.csv

if (($handle = fopen("$datos", "r")) !== FALSE) {
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";
}

}
fclose($handle);
}

Esto te devuelve el contenido del archivo csv linea a linea
Luego solo tienes que cambiar esta línea
echo $data[$c] . "<br />\n";

por

$insertar="INSERT INTO xls (Campo1,Campo2,Campo3,Campo4) VALUES ('$data[0]','$data[1]','$data[2]','$data[3]')";
mysql_query($insertar);

Más o menos...


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Asiduo

  Karma             785

#12 Publicado: 13 Ene 2010 16:25



Gracias,

hasta ahora mis avances son pocos.

mira tengo esto:

<?php
require("config.php");
$row = 1;
$datos = ($_POST['file']);
//$fp = fopen ("datos2.csv","r");
if (($handle = fopen("$datos", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
//while ($data = fgetcsv ($fp, 1000, ";"))
{
$num = count ($data);
print " <br>";
$row++;
echo "$row- ".$data[0].$data[1].$data[2].$data[3];
$insertar="INSERT INTO xls (Campo1,Campo2,Campo3,Campo4) VALUES ('$data[0]','$data[1]','$data[2]','$data[3]')";
mysql_query($insertar);
}
fclose($handle);
//fclose ($fp);
?>

pero me da error en la linea 20


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo


Administrador


  Karma               32083

#13 Publicado: 13 Ene 2010 16:47



Ojo, comprueba que $datos es de la forma que te he indicado... puede que no sea la ruta completa y por eso no lee el archivo.
Si solo es el nombre del arechivo tendrás que añadir la ruta

fopen("carpeta/".$datos, "r"))

otra cosa

fopen("$datos", "r")) $datos no puede ir entre comillas, es una variable.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Asiduo

  Karma             785

#14 Publicado: 13 Ene 2010 17:28



aaaaaaaaaaaaa, no entiendo jcu mira tengo mi archivo html. que me trae el csv

HTML:

<html>
<head>
</head>
<body>
<form action='FUNCIONANDO2.PHP' method='post' name='names' enctype='multipart/form-data'>
<table>
<tr>
<td>subir archivo :</td>
<td><input type='file' name='file'></td>
</tr>
<tr>
<td></td>
<td><input type='submit' value='subir'></td>
</tr>
</table>
</form>
</body>
</html>


LUEGO EL PHP QUE QUIERO QUE RECOJA ESE ARCHIVO.

<?php
require("config.php");
$row = 1;
$datos = ($_POST['file']);
//$fp = fopen ("datos2.csv","r");
if (($handle = fopen($datos, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
//while ($data = fgetcsv ($fp, 1000, ";"))
{
$num = count ($data);
print " <br>";
$row++;
echo "$row- ".$data[0].$data[1].$data[2].$data[3];
$insertar="INSERT INTO xls (Campo1,Campo2,Campo3,Campo4) VALUES ('$data[0]','$data[1]','$data[2]','$data[3]')";
mysql_query($insertar);
}
fclose($handle);
//fclose ($fp);
?>

los dos estan dentro de la misma carpeta,


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo


Administrador


  Karma               32083

#15 Publicado: 13 Ene 2010 17:46



Veamos si nos vamos aclarando

Para recoger un archivo enviado por web tienes que utilizar este código

//datos del arhivo
$nombre_archivo = $HTTP_POST_FILES['userfile']['name'];
$tipo_archivo = $HTTP_POST_FILES['userfile']['type'];
$tamano_archivo = $HTTP_POST_FILES['userfile']['size'];
//compruebo si las características del archivo son las que deseo, en mi caso jpeg, zip, ect... y el tamaño.
if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg") || strpos($tipo_archivo, "zip") || strpos($tipo_archivo, "octet-stream") || strpos($tipo_archivo, "pdf")) && ($tamano_archivo < 10000000000))) {
echo "La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif, .jpg, .zip, octet-stream o .pdf<br><li>Se permiten archivos de 10000 Kb máximo.</td></tr></table>";
}else{
// Coloco el archivo en una carpeta, donde me interese tenerlo.
if (move_uploaded_file($HTTP_POST_FILES['userfile'][' tmp_name'], 'carpeta/'.$nombre_archivo))
{
echo "El archivo ha sido cargado correctamente.";
}else{
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
}
}

Con esto ya tengo el archivo en el servidor.

Ahora ya puedo utilizar llamandolo a la carpeta donde lo he dejado.

Comprueba esta parte del código, es decir, que el archivo llega a su sitio. Luego podrás seguir tu código.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Asiduo

  Karma             785

#16 Publicado: 13 Ene 2010 18:59



GRACIAS TENGO EL SIGUIENTE CODIGO PARA SUBIR ARCHIVOS

<?php
$status = "";
if ($_POST["action"] == "upload") {
// obtenemos los datos del archivo
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
$prefijo = substr(md5(uniqid(rand())),0,6);

if ($archivo != "") {
if ($tipo == "image/gif" || $tipo == "image/jpeg" || $tipo == "image/jpg") {
$destino = "uploads/".$prefijo."_".$archivo;
if (copy($_FILES['archivo']['tmp_name'],$destino)) {
$status = "Archivo subido: ".$archivo."";
} else {
$status = "Error al subir el archivo";
}
} else {
$status = "Error: solo se permite GIF o JPG";
}
} else {
$status = "Error al subir archivo";
}
}
?>

estimado dos consultas, primero como cambio el tipo de archivo permitido ya he intentado poniendo csv, que es solo lo que quiero que suban, y la segunda una vez subido el archivo como puedo hacer automaticamente que vaya al PHP queme cargar el archivo a la BDD


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo


Administrador


  Karma               32083

#17 Publicado: 13 Ene 2010 19:06



Con esto te vale

if ($tipo == "csv")

Pon el código al principio de la página donde tienes el código de introducir datos en la BD


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Asiduo

  Karma             785

#18 Publicado: 13 Ene 2010 19:34 - Editado por: zozer2404



MUCHAS GRACIAS YA ESTA SOLUCIONADO EL TEMA DE SUBIR LOS ARCHIVOS ERES UN MAESTRO, pero aun no puedo dejar que solo suban csv

he comentado el tipo de archivo porke me da error.

<?php
$status = "";
if ($_POST["action"] == "upload") {
// obtenemos los datos del archivo
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
//$prefijo = substr(md5(uniqid(rand())),0,6);
//if ($tipo == "csv")
if ($archivo != "")
//if ($tipo == "csv")
{
// guardamos el archivo a la carpeta files
//$destino = "files/".$prefijo."_".$archivo;
$destino = "files/".$prefijo."".$archivo;
if (copy($_FILES['archivo']['tmp_name'],$destino)) {
$status = "Archivo subido: <b>".$archivo."</b>";
} else {
$status = "Error al subir el archivo";
}
} else {
$status = "Error al subir archivo";
}
}

?>


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo


Administrador


  Karma               32083

#19 Publicado: 13 Ene 2010 19:55



Me alegro... Ahora ya sabes donde está el archivo ($destino) y donde ir a buscarlo para procesarlo.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Asiduo

  Karma             785

#20 Publicado: 13 Ene 2010 20:40



si, pero aun tengo dudas como puedo restringir la subida solo a archivos CSV, NO ME FUNCIONA EL METODO QUE ESTOY UTILIZANDO.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo


Administrador


  Karma               32083

#21 Publicado: 13 Ene 2010 21:51



Utiliza esto

if (!(strpos($tipo_archivo, "csv"))) {error}else{bien}


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Asiduo

  Karma             785

#22 Publicado: 13 Ene 2010 22:05



sociate gracias, pero aun no puedo dejar que solo sean csv

mira este es mi codigo

<?php
$status = "";
if ($_POST["action"] == "upload") {
// obtenemos los datos del archivo
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
//$prefijo = substr(md5(uniqid(rand())),0,6);
//if ($tipo == "csv")

//if ($archivo != "")
if (!(strpos($archivo, "csv"))) {error}else{bien}
//if ($tipo == "csv")
{
// guardamos el archivo a la carpeta files
//$destino = "files/".$prefijo."_".$archivo;
//$destino = "files/".$prefijo."".$archivo;
$destino = "files/datos.csv";
if (copy($_FILES['archivo']['tmp_name'],$destino)) {
$status = "Archivo subido: <b>".$archivo."</b>";
} else {
$status = "Error al subir el archivo";
}
} else {
$status = "Error al subir archivo";
}
}

?>


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo


Administrador


  Karma               32083

#23 Publicado: 13 Ene 2010 23:11



Prueba así

<?php
$status = "";
if ($_POST["action"] == "upload") {
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
if (!(strpos($archivo, "csv"))) {$status = "Error al subir el archivo";
}else{
$destino = "files/datos.csv";
if (copy($_FILES['archivo']['tmp_name'],$destino)) {
$status = "Archivo subido: <b>".$archivo."</b>";
} else {
$status = "Error al subir el archivo";
}
}
}
?>


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Asiduo

  Karma             785

#24 Publicado: 14 Ene 2010 12:08



GRACIAS, sociate una ultima consulta , luego de estos si el PHP quedara 100% lo adjuntare para que alguien mas lo pueda utilizar,

con tus correcciones el PHP esta 98% operativo ya que al momento de subir archivos con otra extension no me deja MUY BIEN ESO, PERO NO ME DA UN ERROR bien para los ojos
me da esto:

Parse error: parse error in C:\xampp\htdocs\pruebadeimportacion\subir archivos\FUNCIONANDO.PHP on line 28

me gustaria que me dijera error solo se permite CSV, algo asi, acontinuacion dejo mi codigo. GRACIAS


<?php
$status = "";
if ($_POST["action"] == "upload") {
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
if (!(strpos($archivo, "csv"))) {$status = "Error al subir el archivo";
}else{
$destino = "files/datos.csv";
if (copy($_FILES['archivo']['tmp_name'],$destino)) {
$status = "Archivo subido: ".$archivo."";
} else {
$status = "Error al subir el archivo";
}
} else {
$status = "Error: solo se permite archivos con extension CSV";
}
} else {
$status = "Error al subir archivo";
}
}
?>


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo


Administrador


  Karma               32083

#25 Publicado: 14 Ene 2010 12:16



Prueba ahora

<?php
$status = "";
if ($_POST["action"] == "upload") {
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
if (!(strpos($archivo, "csv"))) {$status = "Error al subir el archivo";
}else{
$destino = "files/datos.csv";
if (copy($_FILES['archivo']['tmp_name'],$destino)) {
$status = "Archivo subido: ".$archivo."";
} else {
$status = "Error al subir el archivo";
}
}
} else {
$status = "Error al subir archivo";
}
?>



Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Asiduo

  Karma             785

#26 Publicado: 14 Ene 2010 12:26



Parece que mi error es mas grande de lo que pense, tengo todo este codigo en un mismo archivo funcionando.php, donde el error de subir el archivo se genera por que no encuentra el csv en la carpeta.

Warning: fopen(files/datos.csv) [function.fopen]: failed to open stream: No such file or directory in C:\xampp\htdocs\pruebadeimportacion\subir archivos\FUNCIONANDO.PHP on line 41

Warning: fgetcsv() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\pruebadeimportacion\subir archivos\FUNCIONANDO.PHP on line 42

Warning: fclose(): supplied argument is not a valid stream resource in C:\xampp\htdocs\pruebadeimportacion\subir archivos\FUNCIONANDO.PHP on line 51


<?php
$status = "";
if ($_POST["action"] == "upload") {
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
if (!(strpos($archivo, "csv"))) {$status = "Error al subir el archivo";
}else{
$destino = "files/datos.csv";
if (copy($_FILES['archivo']['tmp_name'],$destino)) {
$status = "Archivo subido: ".$archivo."";
} else {
$status = "Error al subir el archivo";
}
}
} else {
$status = "Error al subir archivo";
}
?>


<?php
require("config.php");
$row = 1;
$fp = fopen ("files/datos.csv","r");
while ($data = fgetcsv ($fp, 1000, ";"))

{
$num = count ($data);
print " <br>";
$row++;
echo "$row- ".$data[0].$data[1].$data[2].$data[3];
$insertar="INSERT INTO xls (Campo1,Campo2,Campo3,Campo4) VALUES ('$data[0]','$data[1]','$data[2]','$data[3]')";
mysql_query($insertar);
}
fclose ($fp);
?>


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo


Administrador


  Karma               32083

#27 Publicado: 14 Ene 2010 12:42



Cambia
$fp = fopen ("files/datos.csv","r");

por

$fp = fopen ($destino ,"r");

Si no te deja entrar al aarchivo puede ser por los permisos de la carpeta o las preferencias de PHP en tu Xampp


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Asiduo

  Karma             785

#28 Publicado: 14 Ene 2010 13:08



sociate gracias nuevamente, me has solucionado el error que tenia que el archivo se cargaba igual en la BDD el ejecutar el html ya que el archivo se encontaraba dentro de la carpeta contenedora. GRACIAS, pero mi error se genera asi:


Warning: fgetcsv() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\pruebadeimportacion\subir archivos\FUNCIONANDO.PHP on line 44

Warning: fclose(): supplied argument is not a valid stream resource in C:\xampp\htdocs\pruebadeimportacion\subir archivos\FUNCIONANDO.PHP on line 53

CREO YO que es por que no encuentra el archivo que deseamos cargar.

<?php
$status = "";
if ($_POST["action"] == "upload") {
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
if (!(strpos($archivo, "csv"))) {$status = "Error al subir el archivo";
}else{
$destino = "files/datos.csv";
//$fp = fopen ($destino ,"r");
if (copy($_FILES['archivo']['tmp_name'],$destino)) {
$status = "Archivo subido: ".$archivo."";
} else {
$status = "Error al subir el archivo";
}
}
} else {
$status = "Error al subir archivo";
}
?>


<?php
require("config.php");
$row = 1;
//$fp = fopen ("files/datos.csv","r");
$fp = fopen ($destino ,"r");
while ($data = fgetcsv ($fp, 1000, ";"))
{
$num = count ($data);
print " <br>";
$row++;
echo "$row- ".$data[0].$data[1].$data[2].$data[3];
$insertar="INSERT INTO xls (Campo1,Campo2,Campo3,Campo4) VALUES ('$data[0]','$data[1]','$data[2]','$data[3]')";
mysql_query($insertar);
}
fclose ($fp);
?>


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo


Administrador


  Karma               32083

#29 Publicado: 14 Ene 2010 13:21



Parece que el error es de un parámetro de la función fgetcsv, ¿Has probado con una , en lugar de ;?


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Asiduo

  Karma             785

#30 Publicado: 14 Ene 2010 13:28



esa ; hace la separacion de los parametros a ingresar por csv, pero este error solo me da cuando el archivo no es csv. es lo que quiero que haga al ejecutarlo no suba archivos sin extension CSV se agradece toda tu ayuda.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo

 Página:  1  2  »»
Su respuesta

Estilo Negrillas  Estilo Italico  Estilo Subrayado  URL De La Imagen  URL De La Web  Preformatted Text  YouTube URL  Sin código BB
Emoticones
:) ;) :up: :down: :biglol: :confused :cool: :mad: :sad: :shame: :smirk: :tongue: ... Más  Emoticones desactivados
Color de texto
Texto en negro Texto en blanco Texto en gris Texto en rojo Texto en azul Texto en verde Texto en rojo oscuro Texto en cian Texto en azul oscuro Texto en púrpura Texto en amarillo Texto en rosa Texto en naranja Texto en verde oliva Texto en marrón



 » Usuario  » Contraseña 
Solo Usuarios Registrados Pueden Postiar Aqui.
 

Tópicos relacionados con importar excel desde php a mysql

Exportar,importar,emilinar base de datos mysql desde php
Importar txt a Mysql automaticamente
Como se llama a una base MySQL desde PHP
Consulta MySQL
tutorial mysql


Conectados: Invitados - 12
Miembros - 0
En verde usuarios ZDDR

Realizado con miniBB © 2001-2021
Para Udias.com © 1996-2021
Hosting con Interdominios