Foros del Web » Programando para Internet » PHP »

Crear una especie de ETL con php y mysql

Estas en el tema de Crear una especie de ETL con php y mysql en el foro de PHP en Foros del Web. Hola amigos, necesito crear una especie de "ETL" con php y mysql. Tengo 2 tablas una se llama usuario_concurso y la otra sorteo. Cual es ...
  #1 (permalink)  
Antiguo 03/07/2011, 21:44
 
Fecha de Ingreso: julio-2009
Mensajes: 51
Antigüedad: 14 años, 9 meses
Puntos: 0
Crear una especie de ETL con php y mysql

Hola amigos,
necesito crear una especie de "ETL" con php y mysql.
Tengo 2 tablas una se llama usuario_concurso y la otra sorteo.

Cual es la idea, en la tabla usuario_concurso tengo el campo email y el campo puntos.
Datos son:

[email protected], 2
[email protected], 1
[email protected], 4

entonces, necesito hacer un select a la tabla usuario_concurso, y que a la vez haga un insert a la tabla sorteo, insertar el email segun la cantidad de puntos que tenga.

ejemplo [email protected] tiene 2 puntos, por ende en la tabla sorteo debo insertar 2 veces el registro [email protected]

Se entiende???
espero su ayuda, ya que no he podido hacerlo, gracias.
  #2 (permalink)  
Antiguo 04/07/2011, 01:44
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Crear una especie de ETL con php y mysql

Bueno... primero sacas todos los usuarios:
Código php:
Ver original
  1. $ok = 0;
  2. $error = 0;
  3. $sql = "SELECT email, puntos
  4.         FROM usuario_concurso";
  5. $result = mysql_query($sql);
  6. while($data = mysql_fetch_array($result)){
Luego tomas cada valor puntos y lo insertas en la tabla sorteo:
Código php:
Ver original
  1. $i = 1;
  2.     $puntos = $data['puntos'];
  3.     while($i<=$puntos){
  4.         $sqI = "INSERT INTO sorteo (mail) VALUES ('".$data['email']."')";
  5.         if(mysql_query($sqI)){
  6.             $ok++;
  7.         }else{
  8.             $error++;
  9.         }
  10.     }
  11. }
  12. echo "Se ingresaron ".$ok." valores con ".$error." errores";
O algo por ahi.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 04/07/2011, 08:36
 
Fecha de Ingreso: julio-2009
Mensajes: 51
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Crear una especie de ETL con php y mysql

gracias marvin, lo intenté pero se mete en un ciclo que no termina nunca, trataré de meter algun for en vez del segundo while... gracias.
  #4 (permalink)  
Antiguo 04/07/2011, 09:36
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Crear una especie de ETL con php y mysql

La idea es que vayas depurando el codigo para ver porque pasa... Si te fijas el while se hace mientras $i sea menor o igual a $puntos, por lo tanto...

Cuanto vale $i??

Saludos!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #5 (permalink)  
Antiguo 04/07/2011, 10:07
 
Fecha de Ingreso: julio-2009
Mensajes: 51
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Crear una especie de ETL con php y mysql

Finalmente reemplacé el segundo while por un for quedando de esta manera:

Código PHP:
for($i 1;$i<=$puntos;){
                
$sqI "INSERT INTO sorteo (mtd02_email) VALUES ('".$data['mtd02_email']."')";
                if(
mysql_query($sqI)){
                    
$i++;
                }else{
                    
$error++;
                }
                
            } 
ahora funciona bien ,gracias por la introduccion!!

Etiquetas: mysql
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:50.