Foros del Web » Programando para Internet » PHP »

Eliminar y sumar al inventario todos los campos que coincidan con cierto valor

Estas en el tema de Eliminar y sumar al inventario todos los campos que coincidan con cierto valor en el foro de PHP en Foros del Web. hola amigos primero que nada muchas gracias por el apoyo y mi pregunta es la siguiente Tengo 3 tablas PEDIDOS, PRODUCTOS, INVENTARIOS. Lo que necesito ...
  #1 (permalink)  
Antiguo 15/10/2012, 17:17
Avatar de humansl11  
Fecha de Ingreso: octubre-2009
Ubicación: Mexico
Mensajes: 61
Antigüedad: 14 años, 6 meses
Puntos: 0
Eliminar y sumar al inventario todos los campos que coincidan con cierto valor

hola amigos primero que nada muchas gracias por el apoyo y mi pregunta es la siguiente
Tengo 3 tablas PEDIDOS, PRODUCTOS, INVENTARIOS.

Lo que necesito es mostrar la lista de todos los pedidos (YA LO TENGO)
De esa lista borrar un pedido, el cual borrar todos los productos de la tabla PRODUCTOS que estén en el pedido.
Y asi mismo todas las cantidades que tengas esos productos actualizarlos a mi tabla de INVENTARIOS.

Les muestro el código que tengo pero solo me elimina el primer registro lo que necesito es que la eliminación sea a todos los elementos que guardo en el ARRAY

Código:
$datosproductos = mysql_query("SELECT * FROM historial_productos_transacciones WHERE idTransaccion ='$idTransaccion'");	
	$todos = mysql_fetch_array($datosproductos);
	for ($i = 0, $size = count($todos); $i < $size; ++$i )
				{
					//saco primero el valor que tengo en el historial del pedido
					$datosproductos = mysql_query("SELECT * FROM historial_productos_transacciones WHERE idProductos ='".$todos[$i]['idProductos']."'");
					$cantidad = mysql_fetch_array($datosproductos);
					$montohistorial = $cantidad['monto'];
					//despues saco el valor del inventario
					$consigoinventario = mysql_query("SELECT * FROM inventario WHERE idProducto ='".$todos[$i]['idProducto']."'");
					$actualinventario = mysql_fetch_array($consigoinventario);
					$montoinventario = $actualinventario['inicial'];
					//sumo los dos valores para que actualize mi inventario
					$resultadosuma = $montoinventario + $montohistorial;
					$resultadosuma *= (1);
					$actualizoinventario = mysql_query("UPDATE inventario SET inicial = '$resultadosuma' WHERE idProducto = '".$todos[$i]['idProducto']."'");  
					if($actualizoinventario == 1)
					$eliminar = mysql_query("DELETE FROM historial_productos_transacciones WHERE idProductos ='".$todos[$i]['idProductos']."'");  
					if($eliminar == 1)
							$aviso = "Se elimino el pedido y todos sus productos han sido regresados al inventario";	
				}

	//despues de eliminar todos los registros del historial procedemos a eliminar la transaccion de la tabla transacciones
		//$eliminar = mysql_query("DELETE FROM historial_productos_transacciones WHERE idProductos ='".$row['idProductos']."'"); 
  #2 (permalink)  
Antiguo 16/10/2012, 23:01
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Eliminar y sumar al inventario todos los campos que coincidan con cierto v

mysql_fetch_*() lee sólo un registro a la vez y en ese for() lo que haces es recorrer los campos del mismo registro y supongo que al querer acceder a $todos[$i]['idProducto'] debería darte un mensaje de error.

Lee el manual de la función, hay algunos ejemplos que te servirán para saber cómo leer todos los registros con while().

Manual: http://www.php.net/manual/es/functio...etch-array.php
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: campos, inventario, mysql, registro, 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 15:05.