Cita:
Iniciado por frmfernando
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! :)