Foros del Web » Programando para Internet » PHP »

sql restar stock

Estas en el tema de sql restar stock en el foro de PHP en Foros del Web. hola amigos estoy haciendo un stock y me gustaria saber como puedo hacer la descarga o resta del producto vendido, creo q se haria por ...
  #1 (permalink)  
Antiguo 09/02/2010, 15:51
 
Fecha de Ingreso: febrero-2009
Mensajes: 489
Antigüedad: 15 años, 2 meses
Puntos: 8
Sonrisa sql restar stock

hola amigos
estoy haciendo un stock y me gustaria saber como puedo hacer la descarga o resta del producto vendido, creo q se haria por la funcion update pero no estoy seguro espero que me colaboren con algunas ideas para hacer las resta.

la idea es
la tabla articulos

codarticulo cantidad

se resten cuano yo venda. esto es lo q yo tengo

if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form3")) {
$updateSQL = sprintf("UPDATE articulos SET stock=stock - cantidad WHERE codarticulo='$codarticulo'",
GetSQLValueString($_POST['cantidad'], "int"),
GetSQLValueString($_POST['codarticulo'], "int"));

mysql_select_db($database_fstore, $fstore);
$Result1 = mysql_query($updateSQL, $fstore) or die(mysql_error());
}

pero no me funciona

en el form3 tengo dos campos ocultos donde tengo el codarticulo y cantidad
  #2 (permalink)  
Antiguo 09/02/2010, 19:51
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: sql restar stock

La consulta en sí está bien, el problema es la forma en que usas sprintf(), debería ser algo como esto:
Código PHP:
Ver original
  1. $updateSQL = sprintf("UPDATE articulos SET stock=stock - %d WHERE codarticulo='%s'",
  2. GetSQLValueString($_POST['cantidad'], "int"),
  3. GetSQLValueString($_POST['codarticulo'], "int"));
Traslado el tema a la sección de PHP.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 09/02/2010, 19:55
 
Fecha de Ingreso: febrero-2009
Mensajes: 489
Antigüedad: 15 años, 2 meses
Puntos: 8
Respuesta: sql restar stock

voy a checarlo
  #4 (permalink)  
Antiguo 09/02/2010, 20:10
 
Fecha de Ingreso: febrero-2009
Mensajes: 489
Antigüedad: 15 años, 2 meses
Puntos: 8
Respuesta: sql restar stock

David ya lo mire no me hace nada aun pero te cuento, yo este update lo estoy trabajando con iframe.

la ventana padre tiene un form y este me pasa a un iframe hijo, donde gestion el form de la ventana padre y mando los datos al ifreme a hay esta la funcion se insert to bd, mi pregunta es debo de poner la funcion de update en la ventana hijo, pues el form es en la padre, hay es donde estoy medio confundido.

ps por q se entida "form3")) { y este esta en la ventana padre
  #5 (permalink)  
Antiguo 09/02/2010, 20:14
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 4 meses
Puntos: 20
Respuesta: sql restar stock

vas descontanto uno por uno o por grupo, tipo factura??
  #6 (permalink)  
Antiguo 09/02/2010, 20:16
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: sql restar stock

El INSERT debe estar en la página que procesa el formulario.

Por un lado, como codarticulo es numérico no necesita estar entre comillas:
Código PHP:
Ver original
  1. $updateSQL = sprintf("UPDATE articulos SET stock=stock - %d WHERE codarticulo=%d",
  2. GetSQLValueString($_POST['cantidad'], "int"),
  3. GetSQLValueString($_POST['codarticulo'], "int"));
Debes verificar que realmente se cumpla la condición (isset($_POST["MM_update"])).... )

También, usa mysql_affected_rows para saber si alguna fila fue afectada por la consulta.

Si persiste el problema, imprime (echo) el valor de la variable $updateSQL y prueba la consulta directamente en MySQL.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 09/02/2010, 20:18
 
Fecha de Ingreso: febrero-2009
Mensajes: 489
Antigüedad: 15 años, 2 meses
Puntos: 8
sergiop21 uno por uno tipo factura

David como puedo " verificar que realmente se cumpla la condición (isset($_POST["MM_update"])).... )"

me puedes colaborar. que debo de tener en cuenta para saber si se cumple la condicion ps yo creo que hay esta la falla, ps usted ya me corregio la sql.
gracias

amigos me salio este error

Fatal error: Call to undefined function GetSQLValueString() in C:\AppServ\www\fstore\factura_clientes\frame_factu ra.php on line 19


que puese ser la linea 19

Cita:
$updateSQL = sprintf("UPDATE articulos SET stock=stock - %d WHERE codarticulo=%d",
GetSQLValueString($_POST['cantidad'], "int"),
GetSQLValueString($_POST['codarticulo'], "int"))
la linea 19
es la numero 2 del codigo de david


a q se debera el error

Última edición por GatorV; 09/02/2010 a las 21:23
  #8 (permalink)  
Antiguo 10/02/2010, 08:29
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: sql restar stock

Significa que esa función no existe. ¿Dónde la tienes definida? Yo sólo la coloqué como estaba en tu código original.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 10/02/2010, 10:52
 
Fecha de Ingreso: febrero-2009
Mensajes: 489
Antigüedad: 15 años, 2 meses
Puntos: 8
Respuesta: sql restar stock

David el codigo

este codigo lo pongo en la ventana iframe hijo

Código PHP:
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form2")) {
           
$updateSQL sprintf("UPDATE articulos SET stock=stock -%d WHERE codarticulo='%s'",
              
GetSQLValueString($_POST['cantidad'], "int"),
              
GetSQLValueString($_POST['codarticulo'], "int")); 
y la defino en la ventana padre en el form2
con un campo oculto

Cita:
<input type="hidden" name="MM_update" value="form2" />
  #10 (permalink)  
Antiguo 10/02/2010, 12:08
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: sql restar stock

Me refiero a la función GetSQLValueString, ¿la tienes definida?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #11 (permalink)  
Antiguo 10/02/2010, 13:16
 
Fecha de Ingreso: febrero-2009
Mensajes: 489
Antigüedad: 15 años, 2 meses
Puntos: 8
David yo trabajo con Dreamweaver CS4. como puedo saber si esta definida ps el cs4 me imagino que debe definirlo

gracias por la colaboracion y la pasiencia

David ya encontre el problema.

era porque habia puesto el update antes de definir la función GetSQLValueString
ahora parece que esta dando bn voy ha hacerle mas pruebas pero creo que ya qdo muchas gracias

Última edición por GatorV; 10/02/2010 a las 14:30

Etiquetas: restar, sql, stock
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 17:05.