Foros del Web » Programando para Internet » PHP »

Problemas al pasar registros de una tabla a otra

Estas en el tema de Problemas al pasar registros de una tabla a otra en el foro de PHP en Foros del Web. Hola buenos días. Les comento, tengo una tabla temporal llamada temp_ingrediente y otra tabla llamada ingrediente_final. En la tabla temp_ingredientes guardo datos temporalmente mientras ingreso ...
  #1 (permalink)  
Antiguo 13/08/2012, 03:51
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 15 años, 10 meses
Puntos: 1
Problemas al pasar registros de una tabla a otra

Hola buenos días.

Les comento, tengo una tabla temporal llamada temp_ingrediente y otra tabla llamada ingrediente_final.

En la tabla temp_ingredientes guardo datos temporalmente mientras ingreso información en la página.

Lo que necesito es pasar esa información a la tabla ingrediente_final y por alguna razón que se me escapa solo me guarda un registro en la tabla ingrediente final.

Este es el código que estoy utilizando espero que alguien vea donde esta el fallo.

Código PHP:
$sql="SELECT id, id_codigo, id_ingrediente, cantidad FROM temp_ingrediente ORDER BY id ASC"// recoger los datos de la tabla temp_ingrediente
        
$r=mysql_query($sql$link);
        while (
$fila=mysql_fetch_assoc($r)){
            
$id_codigo=$fila["id_codigo"];
            
$id_ingrediente=$fila["id_ingrediente"];
            
$cantidad=$fila["cantidad"];

            
$sql="INSERT INTO ingrediente_final (id_codigo, id_ingrediente, cantidad) VALUES ('$id_codigo', '$id_ingrediente', '$cantidad')"// grabar datos de ingredientes en la tabla definitiva
            
$r=mysql_query($sql$link);
        }
    } 
lo curioso es que si del while quito el insert y pongo un echo a cualquiera de los reguistros me muestra la lista entera.

Lo que si he observado es que el registro que me guarda es el que primero llega.

Saludos.
  #2 (permalink)  
Antiguo 13/08/2012, 04:17
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Problemas al pasar registros de una tabla a otra

Piensa q estás sobreescribiendo la variable $r ;)
__________________
>> Eleazan's Source
>> @Eleazan
  #3 (permalink)  
Antiguo 13/08/2012, 04:26
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 15 años, 10 meses
Puntos: 1
De acuerdo Respuesta: Problemas al pasar registros de una tabla a otra

Hola Eleazan muchas gracias por responder.

Al final como dice un conocido mio "menos es más"

La solución es mucho más sencilla que todo lo que estaba haciendo

Código PHP:
$sql="INSERT INTO ingrediente_final (id_codigo, id_ingrediente, cantidad) SELECT id_codigo, id_ingrediente, cantidad FROM temp_ingrediente";
                    
$r=mysql_query($sql$link); 
Muchas gracias.
  #4 (permalink)  
Antiguo 13/08/2012, 09:43
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Problemas al pasar registros de una tabla a otra

Cita:
Iniciado por frmfernando Ver Mensaje
Hola Eleazan muchas gracias por responder.

Al final como dice un conocido mio "menos es más"

La solución es mucho más sencilla que todo lo que estaba haciendo

Código PHP:
$sql="INSERT INTO ingrediente_final (id_codigo, id_ingrediente, cantidad) SELECT id_codigo, id_ingrediente, cantidad FROM temp_ingrediente";
                    
$r=mysql_query($sql$link); 
Muchas gracias.
Sí, es una solución esa q te proporciona MySQL, pero, quiero hacerte constar el fallo que tenías, por si alguna vez estás en una situación parecida, que puedas resolverla.

Observa tu código:
Código PHP:
$sql="SELECT id, id_codigo, id_ingrediente, cantidad FROM temp_ingrediente ORDER BY id ASC"// recoger los datos de la tabla temp_ingrediente 
        
$r=mysql_query($sql$link); 
        while (
$fila=mysql_fetch_assoc($r)){ 
            
$id_codigo=$fila["id_codigo"]; 
            
$id_ingrediente=$fila["id_ingrediente"]; 
            
$cantidad=$fila["cantidad"]; 

            
$sql="INSERT INTO ingrediente_final (id_codigo, id_ingrediente, cantidad) VALUES ('$id_codigo', '$id_ingrediente', '$cantidad')"// grabar datos de ingredientes en la tabla definitiva 
            
$r=mysql_query($sql$link); 
        } 
    } 
Si te fijas, es la típica extructura de bucle en plan

Código PHP:
while( $fila mysql_fetch_array($r) ) {
    
//Blablabla, trabajo con la consulta

Es un bucle sencillo, en el que en cada vuelta obtiene un "registro" de $r (OJO!). ¿Qué pasa en tu código? Tienes algo así

Código PHP:
while ( $fila mysql_fetch_array($r) ) {
    
//blablabla
    
$r mysql_query("SELECT 1"$link);
    
//Blabla

Si te fijas, en la primera vuelta, ya sobreescribes $r con el resultado de otra consulta, por eso sólo te hace el primer registro, y los demás falla / da errores / resultados inesperados

Si otra vez estás más atento, no debería pasarte!

Un saludo! Y ánimo! :)
__________________
>> Eleazan's Source
>> @Eleazan
  #5 (permalink)  
Antiguo 17/08/2012, 02:46
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 15 años, 10 meses
Puntos: 1
De acuerdo Respuesta: Problemas al pasar registros de una tabla a otra

Buenos días.
Pues otra vez estaba con el mismo problema, una petición a la BB.DD dentro de otra petición, iba a realizar una consulta y he visto que me habías respondido, y increíblemente me has solucionado el problema antes que lo haya planteado.

Muchas gracias nuevamente.

Fernando.
  #6 (permalink)  
Antiguo 17/08/2012, 02:53
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Problemas al pasar registros de una tabla a otra

Soy un visionario!
__________________
>> Eleazan's Source
>> @Eleazan

Etiquetas: registro, registros, sql, tabla
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 16:15.