Hola buen día, les comento como muchos otros soy nueva, tanto en el foro como en la programación php, he estado buscando por aqui algun tema que me ayude, y he encontrado algo similar, pero tengo problemas para poder hacerlo funcionar en mi caso particular, la situación es la siguiente. Tengo un archivo en la misma carpeta que mi proyecto, el archivo se llama 'archivo.txt' y el contenido de dicho archivo es el siguiente:
1|Jorge|Pérez Campos|informatico|27|León
2| Pedro| Diez Santamarta| diseñador| 22| Salamanca
3| Luis| Ruiz Campos| dibujante| 27| Zamora
Es un archivo de texto plano con cada campo separado por pipes.
Tengo mi base de datos en MySQL con la tabla usuarios con la siguiente estructura...
create table users (
id int not null,
nombre varchar(20),
apellidos varchar(100),
profesion varchar(40),
edad int,
ciudad varchar(20),
constraint pk primary key (id)
)
Bueno, tengo mi archivo .php con el que quiero que se efectue el proceso de carga de esos registros que tiene mi .txt en mi tabla users de MySQL, lo mas cercano que encontre son estos temas:
[URL="http://www.forosdelweb.com/f18/importar-txt-mysql-381216/"]http://www.forosdelweb.com/f18/importar-txt-mysql-381216/[/URL]
[URL="http://www.forosdelweb.com/f18/cargar-txt-mysql-794679/"]http://www.forosdelweb.com/f18/cargar-txt-mysql-794679/[/URL]
y bueno he tratado de adaptarlos a mi .php pero pues creo que solo he destrozado el código, lo unico que he podido lograr con un ejemplo que vi por aqui igualmente, es que leea los datos del .txt y los imprima con un foreach... el ejemplo lo obtuve de aqui.
[URL="http://www.forosdelweb.com/f18/lectura-archivo-txt-separado-por-comas-819082/"]http://www.forosdelweb.com/f18/lectura-archivo-txt-separado-por-comas-819082/[/URL]
y bueno intente hacerlo con un load data in file desde php pero ni me envia errores al ejecutarlo (con el localhost, tengo wamp instalado) ni me inserta nada en mysql.. es script es el siguiente:
<?php
$con = mysql_connect('localhost', 'root', '');
mysql_select_db("webtest", $con);
$ubicacion="c:\webtest\archivo.txt";
$query="load data local infile '$ubicacion' into table users fields terminated by '|' lines terminated by '\n'
(id,nombre,apellidos,profesion,edad,ciudad);";
mysql_query($query);
?>
bueno otra manera que estaba intentando era leer cada linea y luego guardar cada campo en variables y luego insertarlas en la tabla, pero debo decir, tampoco me funciona, lo unico que logro es que me imprima el contenido de las variables, mas no me realiza el insert :/, el codigo es el siguiente:
<?php
$con = mysql_connect('localhost', 'root', '');
mysql_select_db("webtest", $con);
$filas=file('archivo.txt');
foreach($filas as $value){
list($id, $nombre, $apellidos, $profesion, $edad, $ciudad) = explode("|", $value);
echo 'Id: '.$id.'<br/>';
echo 'Nombre: '.$nombre.'<br/>';
echo 'Apellidos: '.$apellidos.'<br/>';
echo 'Profesión: '.$profesion.'<br/>';
echo 'Edad: '.$edad.'<br/>';
echo 'Ciudad: '.$ciudad.'<br/><br/>';
$insert = "INSERT INTO users(id,nombre,apellidos,profesion,edad,ciudad) VALUES ($id, $nombre, $apellidos, $profesion, $edad, $ciudad)";
$resultado=mysql_query($insert, $con);
}
?>
Agradecería demasiado su ayuda, enserio la necesito y estoy algo perdida con esto, muchísimas gracias, y perdón si estoy siendo redundante en el tema, solo que no puedo adaptar los ejemplos que veo a mi caso en particular y necesito orientación para poder ver en que estoy mal...MUCHAS GRACIAS"