Ver Mensaje Individual
  #4 (permalink)  
Antiguo 27/08/2012, 16:00
art_rockerd
 
Fecha de Ingreso: agosto-2012
Ubicación: México
Mensajes: 106
Antigüedad: 12 años, 5 meses
Puntos: 6
Respuesta: PHP- Leer .txt y cargar en Mysql

Hola, de nuevo yo, ahora tengo otras preguntas mas sobre este script, bueno un detalle que pude notar es que no se cargan bien los registros a menos de que en el archivo .txt después de cada '|' tiene que haber un espacio. por que si no le pongo los espacios me inserta los primeros dos registros sin el id...solo el del último.. y no se por que.

Este es el contenido del .txt de manera que funcione:

1| Jorge| Pérez Campos| informatico| 27| León| B
2| Pedro| Diez Santamarta| diseñador| 22| Salamanca| B
3| Luis| Ruiz Campos|dibujante| 27| Zamora| B


Pero bueno, lo que quiero hacer enseguida de haber insertado los registros en la tabla, es obtener el id y el perfil de todos esos registros e insertarlos en otra tabla. Tengo esta estructura para mis tablas:
Código MySQL:
Ver original
  1. create database webtest;
  2. use webtest:
  3.  
  4. create table users (
  5.     id int not null,
  6.      nombre varchar(20),
  7.     apellidos varchar(100),
  8.     profesion varchar(40),
  9.     edad int,
  10.     ciudad varchar(20),
  11.     perfil char(2),
  12.     constraint pk primary key (id)
  13. );
  14.  
  15. create table modulo_permisos (
  16.     id_modulo int auto_increment,
  17.     id_users int not null,
  18.     perfil varchar(40),
  19.     constraint pk_p primary key (id_modulo)
  20.    );

y mi script de php quedo como sigue:
Código PHP:
Ver original
  1. <?php
  2. $con = mysql_connect('localhost', 'root', '');
  3. mysql_select_db("webtest", $con);
  4.  
  5. $filas=file('archivo.txt');
  6. foreach($filas as $value){
  7.     list($id,$nombre,$apellidos,$profesion,$edad,$ciudad,$perfil) = explode("|", $value);
  8.  
  9. $insert = "INSERT INTO users(id,nombre,apellidos,profesion,edad,ciudad,perfil) VALUES ('$id','$nombre','$apellidos','$profesion','$edad','$ciudad','$perfil')";
  10. $resultado=mysql_query($insert, $con);
  11.  
  12. $sql="SELECT id, perfil FROM users;";
  13. $ejecuta = mysql_query($sql,$con);
  14.    
  15.         while ($row = mysql_fetch_array($ejecuta))
  16.         {
  17.         //RECUPERAr columna id_ perfil
  18.         $id_users=$row['id'];
  19.         $id_perfil=$row['perfil'];
  20.         }
  21.  
  22. $insert2 = "INSERT INTO modulo_permisos (id_users,id_perfil) VALUES ('$id_users','$id_perfil')";
  23. mysql_query($insert2,$con);
  24.  
  25. }
  26. ?>



Les comento, que cuando lo ejecuto, si me inserta los registros en la tabla users, pero no me inserta nada en la tabla modulo_permisos :/
Podrían ayudarme por favor? No se que moverle.

Última edición por art_rockerd; 15/02/2013 a las 16:34 Razón: dar formato a codigo