Comunidad de diseño web y desarrollo en internet online

actualizar tabla sql por web con archivo de texto

Citar            
MensajeEscrito el 14 Nov 2009 08:22 pm
Hola, necesitaria que me ayudarais en lo siguiente ya que no se como empezar:
Tengo una tabla en excel, y mediante un programa llamado xls2sql, paso dicha tabla a un archivo de texto, con el cual desde el sql de mi hosting me actualiza la tabla.Lo que me gustaria es poder actualizar el sql con ese archivo de texto sin el phpmyadmin de hosting y poder hacerlo desde una web con un script o algo.
El archivo de texto podria subirse por ftp, y desde una web un boton al pulsar actualizara.

Gracias,por adelantado.

Por pepito piscinas

106 de clabLevel



 

msie8
Citar            
MensajeEscrito el 15 Nov 2009 01:21 am
debes hacer un update masivo de los registros, contenidos en el archivo plano que te genera el programa que pasa de excel a mysql mira este enlace:
http://www.desarrollandoweb.com/php/script-para-actualizar-datos-en-mysql-3.php
y me comentas.

El servir nos hace Grandes :cool:

Por crmauricio

52 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Nov 2009 02:07 am
Gracias por responder, pero no se si lo que he hecho lo he hecho bien.
He creado un archivo llamado por ejemplo subir.php, le he copia el codigo del script que sailia en ese enlace , he cambiado los datos de localhost por los de mi alojamiento, clave y usuario lo he colgado y me dice que error
"Can't use foo : Access denied for user 'mibasededatos'@'%' to database 'ddbb'

Por pepito piscinas

106 de clabLevel



 

msie8
Citar            
MensajeEscrito el 15 Nov 2009 02:20 am
he cambiado 'ddbb' por el nombre de mi base dedatos y ahora me da el error este:
mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /homepages/36

Por pepito piscinas

106 de clabLevel



 

msie8
Citar            
MensajeEscrito el 15 Nov 2009 07:08 pm
Bueno he encontrado este codigo por ahi, que supuestamente hacia lo que queria pero lo unico que hace en mi caso es mostar el csv en pantalla.C¿Como puedo hacer para que se incluya o se actualice en la tabla de mysql?
Si no es posible me lo decis y dejo de buscar, a ver si es que quiero algo imposible.Gracias.

Código PHP :

<?php
 
require_once('Connections/miconexion.php');
$row = 1;
 
$fp = fopen ("web.csv","r");
while ($data = fgetcsv ($fp, 1000, ",")) 
{ 
$num = count ($data); 
print " <br>"; 
$row++; 
 
echo "$row.". $data[0].$data[1].$data[2].$data[3].$data[4]; 
$insertar="INSERT INTO datos (Ref,Tipo,Descripcion,Precio,Foto) VALUES ('$data[0]','$data[1]','data[2]','data[3]','data[4]')"; 
mysql_query($insertar); 
}
fclose ($fp);
?>

Por pepito piscinas

106 de clabLevel



 

msie8
Citar            
MensajeEscrito el 16 Nov 2009 03:05 am
Prueba esto:
esto es aplicable aun archivo txt o csv del cual tu exportas de excel,lo guarde en una carpeta llamada bakup que esta dentro de importacion que es la carpeta que corre en mi server web en este caso utilizo (wamp),lo llamo con la funcion, load data file de Mysql, le doy la ruta donde esta y lo inserto en una tabla llamada depa con los siguientes tabuladores ; y \r\n.Luego se lo asigno a la variable $sql y se lo paso como una consulta en mysql_query, donde tiene 2 argumentos $sql la consulta y $local la variable de conexion de tu bd donde esta (server,usuario, clave, y nombre de la bd).luego valido la consulta.

$sql="load data infile 'C:/wamp/www/importacion/backup/depa.txt' into table depa fields terminated by ';' lines terminated by '\r\n'";

mysql_query($sql,$local);
if( mysql_query($sql, $local ) )
echo "Actualizacion O.K..";
else
echo "Actualizacion Fallo...";
}
Falta corregir algunos detallitos de tabulación, pero creo que esto te servira.
Cualquier cosa comentame.
El servir nos hace grandes

Por crmauricio

52 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Nov 2009 02:33 pm
Bueno , pues he probado y me da "actualizacion fallo"
Dejo el codigo:

Código PHP :

<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_miconex = "mihost";
$database_miconex = "midatabase";
$username_miconex = "miusuario";
$password_miconex = "mipass";
$miconex = mysql_pconnect($hostname_miconex, $username_miconex, $password_miconex) or trigger_error(mysql_error(),E_USER_ERROR); 
?>



<?php $sql="load data infile 'datos.csv' into table hoja fields terminated by ';' lines terminated by '\r\n'";

mysql_query($sql,$miconex); 
if( mysql_query($sql, $miconex ) )
echo "Actualizacion O.K.."; 
else
echo "Actualizacion Fallo..."; 
?>


He probado a poner la url del archivo datos completa (http://www.mialojamiento/datos/datos.csv)

Por pepito piscinas

106 de clabLevel



 

msie8
Citar            
MensajeEscrito el 16 Nov 2009 04:08 pm
Mira te sugiero que hagas un script, de conexion aparte( por seguridad) y lo incluyas en el de la consulta el de conexion podria ser asi(conex.php):
<?php
$miconex=mysql_connect ("localhost", "root",
"contraseña") or die('Cannot connect to the database because: ' . mysql_error());
mysql_select_db ("excelmysql");
?>

Y el otro quedaria asi(importa.php):

<html>

<body>
<form name=m method="POST" >
<center>
<p>

<input type="submit" value="Inserta" name="inserta">


</form>
</body>
</html>



<?php

include("conex.php");/*CONEXION DE LA BD*/
$inserta=$_POST['inserta'];

if($inserta ){



$sql="load data infile 'C:/wamp/www/importacion/backup/depa.txt' into table depa fields terminated by ';' ";

mysql_query($sql,$miconex);
if( mysql_query($sql,$miconex) )
echo "Actualizacion O.K..";
else
echo "Actualizacion Fallo...";
}

?>

Y listo.
Comentame estamos para servirte
:cool:

Por crmauricio

52 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Nov 2009 03:35 pm
esto sigue dando fallo, lo de poner el php de conexion externo y alo probe pero tampoco funciono, te digo como lo tengo ahora.
este es el php de miconex.php

Código PHP :

<?php
$hostname_miconex = "el server de bd";
$database_miconex = "nombre bd";
$username_miconex = "usuario bd"
$password_miconex = "clave bd";
$miconex = mysql_pconnect($hostname_miconex, $username_miconex, $password_miconex) or trigger_error(mysql_error(),E_USER_ERROR); 
?>

En inserta.php

Código PHP :

<html>

<body>
<form name=m method="POST" >
<center>
<p>

<input type="submit" value="Inserta" name="inserta">


</form>
</body>
</html>



<?php 

include("Connections/miconex.php");/*CONEXION DE LA BD*/
$inserta=$_POST['inserta'];

if($inserta ){



$sql="load data infile 'hoja.csv' into table datos fields terminated by ';' ";

mysql_query($sql,$miconex); 
if( mysql_query($sql,$miconex) )
echo "Actualizacion O.K.."; 
else
echo "Actualizacion Fallo..."; 
}

?>

Donde hoja.csv es el archivo que genera excel al decir guardar como csv.(he probado a poner tambien, http://www.mialojamiento.es/aquiva/hoja.csv
datos es la tabla donde quiero poner los datos
Connections es la carpeta donde tengo las conexiones a la bd

Por pepito piscinas

106 de clabLevel



 

msie8

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.