Comunidad PHPeros
Lenguajes => PHP => Mensaje iniciado por: linex2016 en 03 de Mayo de 2016, 12:49:29 pm
-
Buenas!!!, actualmente, ,estoy preparando un programilla y me he encontrado con un problema. Os explico, paso un array, lo recorro con un foreach, y dentro del foreach tengo una consulta sql, para que, cuando se de la condición, se inserte los datos que saca el foreach.
Adjunto el código:
foreach($_POST['cantidad'] as $cantidad_factura)
{
$consulta_buscar="SELECT id_factura, numero_factura FROM facturas WHERE numero_factura='$numero_factura'";
$lanzo_consulta_buscar=mysql_query($consulta_buscar);
while($resultado_buscar=mysql_fetch_array($lanzo_consulta_buscar))
{
$id_factura_can=$resultado_buscar['id_factura'];
$numero_factura_can=$resultado_buscar['numero_factura'];
}
$consulta_insertar_cantidad="INSERT INTO cantidad (id_cantidad, id_factura_can, numero_factura_can, cantidad_factura) VALUES ('NULL', '$id_factura_can', '$numero_factura_can', '$cantidad_factura')";
$lanzo_consulta_cantidad=mysql_query($consulta_insertar_cantidad);
}
Si lo hago de esta manera, el $id_factura_can, solo quedará un registro de todos los que pudiera tener, y el campo numero_factura_can si queda correcto, por ejemplo:
id_factura_can numero_factura_can
2 5
2 4
2 1
Si el INSERT lo meto dentro del While, tampoco da el resultado que quiero, daría (por ejemplo);
id_factura_can numero_factura_can
2 5
2 5
2 5
2 4
2 4
2 4
2 1
2 1
2 1
3 5
3 5
3 5
3 5
..
..
..
¿Cómo puedo hacer para que cada id se asocie a su cantidad correspondiente? es decir:
id_factura_can numero_factura_can
1 2
2 3
4 4
Muchas gracias.
-
Sería así, pero el problema lo tienes en otro lado, mira bien:
foreach($_POST['cantidad'] as $cantidad_factura) {
$lanzo_consulta_buscar = mysql_query("SELECT id_factura, numero_factura FROM facturas WHERE numero_factura = '" . $numero_factura . "'");
while($resultado_buscar = mysql_fetch_array($lanzo_consulta_buscar)) {
$id_factura_can = $resultado_buscar['id_factura'];
$numero_factura_can = $resultado_buscar['numero_factura'];
$lanzo_consulta_cantidad = mysql_query("INSERT INTO cantidad (id_cantidad, id_factura_can, numero_factura_can, cantidad_factura) VALUES ('NULL', '" . $id_factura_can . "', '" . $numero_factura_can . "', '" . $cantidad_factura ."')");
}
}
-
Buen día
Creo que el problema lo tienes en el while, estás haciendo el insert fuera del ciclo while, al meter dentro debería de funcionar correctamente.
Espero haber sido de ayuda.