ayuda para actualizar base de datos

arraiz_79
22 de Abril del 2008
Tengo que hacer una gestion de inventario, y tengo las siguientes tablas: almacen, salidas, entradas. Tengo un formulario que hay que rellenar, y el problema es que tengo que decrementar el campo stock de la tabla almacen con el campo unidades del formulario para tener el stock actualizado, y con las entradas seria el caso contrario. He probado con la sentencia "UPDATE" pero no me funciona, mejor dicho no se como hacer esa condicion

hadrien
22 de Abril del 2008
Si no pones tu código de actualización no sé dónde está el problema, pero la sentencia para actualizar es la siguiente:
UPDATE nombre_tabla SET campo_a_actualizar_1=valor_1, campo_a_actualizar_2=valor_2 [WHERE condición];

arraiz_79
22 de Abril del 2008
Hola de nuevo, ya te pongo el codigo, utilizo el update pero no me funciona como deberia funcionar.

<html>
<head>
<title> Entradas en el almacen </title>
</head>
<body>
<?php
$key=$_POST['idproducto'];
$nombre=$_POST['nombre'];
$descripcion=$_POST['descripcion'];
$caracteristicas=$_POST['caracteristicas'];
$precio=$_POST['precio'];
$stock=$_POST['stock'];
mysql_connect("127.0.0.1","root","");
mysql_select_db("inventario");
$a="select count(*) from almacen where nombre=$nombre";
if($a==0){
$query="insert into almacen(nombre,descripcion,caracteristicas,precio,stock) values ('$nombre','$descripcion','$caracteristicas','$precio','$stock')";
$result=mysql_query($query);
}
if($a==1){
$query="update almacen set stock=$stock where nombre='$nombre'";
$result=mysql_query($query);
}
//$query="insert into almacen (nombre,descripcion,caracteristicas,precio,stock) values ('$nombre','$descripcion','$caracteristicas','$precio','$stock')";

//$result=mysql_query($query);

?>
<h1><div align="center">Registro Insertado</div></h1>
<div align="center">Visualizar el contenido de la base</div>
<a href="index.html" target="_top">INICIO</a>
</body>
</html>

hadrien
22 de Abril del 2008
¿Te da algún error o sencillamente no hace lo que esperas?

En la sentencia:
$a="select count(*) from almacen where nombre=$nombre";
cabe la posibilidad de que a>1, ¿no? Imagino que lo que deseas es actualizar el stock si hay género, por tanto, debería ser:
if ( $a == 0 ) {
...
}
if ( $a > 1 ) {
$query="update almacen set stock=$stock where nombre='$nombre'";
$result=mysql_query($query);
}

arraiz_79
22 de Abril del 2008
No error no me da ninguna, solo que siempre me inserta y no comprueba para actualizar. aora estoy en el trabajo, esta tarde cuando llegue a casa lo pruebo y ya comentare aber si se soluciona asi. Un saludo y gracias

arraiz_79
22 de Abril del 2008
Ya me funciona, el problema q tng aora xq stao pensando acer algo de registrar usuarios, entonces, lo de antes lo podra hacer solo el administrador. Entonces, ahora desde un formulario que hay que rellenar para solicitar los pedidos, los datos del usurio los almaceno en una tabla de usuarios, y los datos de los pedidos solicitados tengo que comprobar con la tabla almacen para comprobar de que hay unidades en stock suficientes para satisfacer el pedido del cliente, entonces los datos relacionados cn el pedido, no consigo que me los coja utilizando las mismas instrucciones. Si me podeis orientar os estare agradecido. Un Saludo y gracias