Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Resta de campos en tablas diferentes

Estas en el tema de Resta de campos en tablas diferentes en el foro de PHP en Foros del Web. hola buenas tardes, la verdad no tengo mucha experiencia programando ni con las bases de datos pero tengo un programa en (php y mysql) de ...
  #1 (permalink)  
Antiguo 14/04/2014, 19:44
 
Fecha de Ingreso: febrero-2013
Ubicación: Ensenada BC, Mexico.
Mensajes: 5
Antigüedad: 11 años, 1 mes
Puntos: 0
Resta de campos en tablas diferentes

hola buenas tardes, la verdad no tengo mucha experiencia programando ni con las bases de datos pero tengo un programa en (php y mysql) de inventarios que tiene 3 tablas producto, entradas y salidas

Producto:
idproducto
nombre producto
precio
(Aqui se registran los productos que se van a vender)

entradas
idproducto
cantidad
(en esta tabla se aumenta el inventario de los productos)

salidas
idproducto
cantidad
fecha
(en esta tabla se insertan las salidas de producto)

Cabe mencionar que tengo entradas y salidas por separado ya que es necesario conocer el dia en que se realizo la salida, para posteriormente realizar un reporte del mismo.

Tengo un formulario que envia los datos para dar salida es decir la cantidad que se va dar de salida y el identificador del producto, estos son recibidos a otro archivo en el cual se realiza la insercion de las salidas y deberia de realizar la resta para actualizar las entradas.

Este es el codigo del archivo (dar_salida.php):

Código PHP:
<?php
    
include "variables.php";
/* CONECTAR CON BASE DE DATOS **************** */  
   
$con mysql_connect($hostname,$user,$pass);
   if (!
$con){die("ERROR DE CONEXION CON MYSQL: " mysql_error());}
/* ********************************************** */
/* CONECTA CON LA BASE DE DATOS  **************** */
   
$database mysql_select_db("sis",$con);
   if (!
$database){die('ERROR CONEXION CON BD: '.mysql_error());}
/* ********************************************** */

$idproducto $_POST['producto']; 
$cantidad=$_POST['Can'];


$sql "INSERT INTO salidas (idproducto,cantidad)VALUES ('$idproducto','$cantidad')"

$result mysql_query($sql); 

$query_resta"select
(
SELECT cantidad    
FROM entradas
WHERE `idproducto` = '$idproducto'
) - (
SELECT cantidad
FROM salidas
WHERE `idproducto` = '$idproducto')"
;

header('Location: salidas.php');
?>
El problema es que al momento de dar salida a los productos tambien debe de actualizarce el campo de cantidad en la tabla entrada, para ello realizo la siguiente consulta (que esta en el codigo de arriba)

$query_resta= "select
(
SELECT cantidad
FROM entradas
WHERE `idproducto` = '$idproducto'
) - (
SELECT cantidad
FROM salidas
WHERE `idproducto` = '$idproducto')";

esta consulta si me realiza la resta, pero no se como hacer para que el resultado de esa resta se actualice en la tabla entradas

si me pudieran ayudar con esto se los agradeceria mucho, y tenganme paciencia soy algo nueva en esto y en el foro tambien
Muchas gracias de antemano
  #2 (permalink)  
Antiguo 14/04/2014, 21:05
 
Fecha de Ingreso: enero-2014
Mensajes: 7
Antigüedad: 10 años, 2 meses
Puntos: 1
Respuesta: Resta de campos en tablas diferentes

Hola,

Yo haría la consulta de esta forma:

"SELECT e.cantidad - s.cantidad FROM entradas e, salidas s WHERE e.idproducto=s.idproducto and e.idproducto = '$idproducto'";

De forma similar, para actualizar las entradas, utilizaría UPDATE

"UPDATE entradas e, salidas s SET e.cantidad = e.cantidad - s.cantidad WHERE e.idproducto=s.idproducto and e.idproducto = '$idproducto'";
  #3 (permalink)  
Antiguo 14/04/2014, 21:20
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años
Puntos: 468
Respuesta: Resta de campos en tablas diferentes

Yo usaria también update:
Código PHP:
Ver original
  1. $sql = "UPDATE tu_tabla SET campos_a_afectar ='$nuevo_valor' WHERE campo_clave = '$valor_actual'"

Asignale al nuevo valor la resta entre los datos de las tablas que has mencionado antes.
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #4 (permalink)  
Antiguo 16/04/2014, 11:15
 
Fecha de Ingreso: abril-2014
Mensajes: 9
Antigüedad: 10 años
Puntos: 0
Respuesta: Resta de campos en tablas diferentes

$query_resta= "select
(
SELECT cantidad
FROM entradas
WHERE `idproducto` = '$idproducto'
) - (
SELECT cantidad
FROM salidas
WHERE `idproducto` = '$idproducto')";

intenta , quitando la primera palabra select del query

así:

$query_resta= "
(
SELECT cantidad
FROM entradas
WHERE `idproducto` = '$idproducto'
) - (
SELECT cantidad
FROM salidas
WHERE `idproducto` = '$idproducto')";
  #5 (permalink)  
Antiguo 29/05/2014, 22:35
 
Fecha de Ingreso: febrero-2013
Ubicación: Ensenada BC, Mexico.
Mensajes: 5
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Resta de campos en tablas diferentes

Muchisimas gracias , disculpen por contestar hasta ahora , es que habia tenido mucho trabajo y no tenia tiempo apenas para dormir, me ayudaron muchisimo a solucionar mi problema, y si gracias por el dato del update lo habia pasado por alto por completo

Etiquetas: mysql, resta, tablas
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 01:37.