Ver Mensaje Individual
  #4 (permalink)  
Antiguo 13/08/2012, 09:43
Avatar de Eleazan
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