disminucion de estock en sql y php

Iniciado por kamila_92, 16 Octubre 2013, 15:25 PM

0 Miembros y 1 Visitante están viendo este tema.

kamila_92

hola.. tengo un pequeño problema, resulta que tengo este código que me descontara  la cantidad que coloque del producto seleccionado a la base de datos pero no me a resultado si podrían  corregir mi error se los agradecería mi código es este:
  <?php
            $cantidad= $_POST['can1'];
         
           
            include('../php/libreria.php');
            conectar();
         
            $consulta = "SELECT * FROM articulos WHERE nombre_articulo='$cantidad'";
                $resultado = mysql_query($consulta);
               
                if (!$resultado){
                    echo "Problemas con la consulta siga programando...";
                    echo mysql_last_error();
                }
                while ($imprimir = mysql_fetch_assoc($resultado)){
                    ?>
                    <tr>
                    <?php
                    $id_articulo = "".$imprimir['id_articulo']."";
                    $nombre = "".$imprimir['nombre_articulo']."";
                    $stock = "".$imprimir['cantidad']."";
                   
                    $resta = $cantidad - $stock ;
               
               
               

           $actualizar = "UPDATE articulos set cantidad=$resta ";
           $resultado2 = mysql_query($actualizar);
                };
               
           
?>

1mpuls0

Hola.
Hay varias detalles.

Coloca el else y dentro el demás código que se ejecutará.

No encuentro congruencia entre esto
$cantidad= $_POST['can1'];
esto.
"SELECT * FROM articulos WHERE nombre_articulo='$cantidad'";
y esto
$resta = $cantidad - $stock ;

La verdad es que no entiendo bien que quieres hacer tienes unas cosas raras xDD

Que se supone que recoge $_POST['can1'];?? un numero o texto?
Por tu consulta:
"SELECT * FROM articulos WHERE nombre_articulo='$cantidad'";
parece que es texto, aquí lo confirmas un poco más:
$nombre = "".$imprimir['nombre_articulo']."";
pero aquí no puedes hacer eso.
$resta = $cantidad - $stock ;

PD. Coloca tu código en etiquetas Geshi
abc

kamila_92

hola,

mira resulta que lo que estoy asiendo es un entrega de productos verdad en donde la persona selecciona el producto mediantes un linbox  desplegable de productos k vienen de la base de datos, y al lado coloca la cantidad, por lo tanto la variable $cantidad= $_POST['can1'];  estaria trayendo el numero que el usuario coloco,
se supone que estos datos    $id_articulo = "".$imprimir['id_articulo']."";
                                         $nombre = "".$imprimir['nombre_articulo']."";
                                           $stock = "".$imprimir['cantidad']."";

los estoy trayendo desde la base de datos.... donde hice $resta = $cantidad - $stock ;
se supone que debería hacerse una resta entre la variable stock que es la que tiene  la cantidad total en la base de datos, menos la  variable $cantidad que es la que me  a ingresado el usuario,así tendría cuantos productos me estarían quedando  y por ultimo hago una actualización que debería estar actualizando el campo de mi base de datos  cantidad menos la resta que seria la variable que tendría e nuevo stock, asii...
           $actualizar = "UPDATE articulos set cantidad=$resta ";

se entiende....

1mpuls0

Si, justo lo que imaginé.. pues bien dejame decirte que estás haciendolo mal.

1 mysql está obsoleto mejor utiliza mysqli
2 linbox  que diantes es? xD lisbox?, select?
3 En tu código debes recoger el ID del producto que el usuario selecciona, además la cantidad para recibirlos por POST en este caso.
4 La consulta debe quedar así (utilizando el ID): SELECT * FROM articulos WHERE id_articulo=$articulo_id
5 Al Update le falta una condición, a qué producto le va a restar?. UPDATE articulos SET cantidad=$resta WHERE id_articulo=$articulo_id

Cita de: kamila_92 en 17 Octubre 2013, 14:34 PM
se entiende....

De entender, entiendo... que lo hayas explicado de una forma y se entieda de otra es diferente. Es más humilde decir "Me expliqué?".

Saludos.
abc

kamila_92

gracias por tu consejo ... el se entiende no era de mala intención me exprese mal...

1mpuls0

abc