Foros del Web » Programando para Internet » PHP »

verificar que el contador se dentenga en cero

Estas en el tema de verificar que el contador se dentenga en cero en el foro de PHP en Foros del Web. Buenas. Estoy necesito solucionar algo que creo que es sencillo, solo que necesito un poco mas de practica con PHP. Lo que pretendo hacer es ...
  #1 (permalink)  
Antiguo 26/03/2015, 01:09
 
Fecha de Ingreso: diciembre-2006
Mensajes: 83
Antigüedad: 17 años, 4 meses
Puntos: 1
verificar que el contador se dentenga en cero

Buenas.
Estoy necesito solucionar algo que creo que es sencillo, solo que necesito un poco mas de practica con PHP.

Lo que pretendo hacer es un inventario sencillo que tengan cierta cantidad de productos, cada vez que se envie una nueva consulta se vaya reduciendo en -1 a la cantidad total

EJEMPLO
PRODUCTO | CANTIDAD
-Producto1 | 120
-Producto2 | 10
-Producto3 | 0

Mi problema esta que cuando el contador llegue 0 me salga un mensaje de error o una advertency que deje de restar, para que no pase a numeros negativos.

les dejo el codigo de lo que he hecho hasta ahora.

HTML
Código HTML:
<div class="content" id="addproitem">
<form action="updateproduct.php" method="post">
	<div >
	Producto:<?php
	$name= mysql_query("select * from productos");
	
	echo '<select name="ITEM" id="user" class="textfield1">';
	 while($dato= mysql_fetch_assoc($name))
	{
	echo '<option value="'.$dato['id'].'">';
	echo $dato['producto'];
	echo'</option>';
	}
	echo'</select>';
	?>
	</div>
	<br />

	<div ><input name="" type="submit" value="Add" /></div>
</form>
</div> 
Código PHP:
<?php
include("db.php");
$proid=$_POST['ITEM'];

$sql ='select * from productos where producto';
$res mysql_query($sql);
if (
mysql_num_rows($res)== 0){
    
echo 
'No quedan' .$res['producto1''en inventario'];

    }
else {

mysql_query("UPDATE productos SET cantidad = cantidad -1 WHERE id='$proid'");
header("location: tableedit.php#page=addproitem"); 
}
?>
Espero que haber sido especifico y como tambien espero que me puedan ayudar con esto.

Un saludo
__________________
Dhampire // Blog | Videos Breakdance
  #2 (permalink)  
Antiguo 26/03/2015, 01:21
Avatar de isaacanet  
Fecha de Ingreso: febrero-2015
Mensajes: 15
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: verificar que el contador se dentenga en cero

Hola, en vez de mirar el número de filas que te devuelve la consulta, obtén la columna y después verifica que sea igual a 0.

Código PHP:
<?php 
include("db.php"); 
$proid=$_POST['ITEM']; 

$sql ='select cantidad from productos WHERE id=$proid'
$res mysql_query($sql); 
$cantidadActual mysql_fetch_assoc($res);
$cantidadActual $cantidadActual["cantidad"];
if (
$cantidadActual == 0){ 
     
echo 
'No quedan' .$res['producto1''en inventario']; 

    } 
else { 

mysql_query("UPDATE productos SET cantidad = cantidad -1 WHERE id='$proid'"); 
header("location: tableedit.php#page=addproitem");  

?>
  #3 (permalink)  
Antiguo 26/03/2015, 01:37
 
Fecha de Ingreso: diciembre-2006
Mensajes: 83
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: verificar que el contador se dentenga en cero

he hecho lo que me dices... Y me sale este error :/

Código HTML:
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\inventario\updateproduct.php on line 7
No quedan
__________________
Dhampire // Blog | Videos Breakdance
  #4 (permalink)  
Antiguo 26/03/2015, 02:00
Avatar de isaacanet  
Fecha de Ingreso: febrero-2015
Mensajes: 15
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: verificar que el contador se dentenga en cero

Añade esto:
Código PHP:
<?php 
include("db.php"); 
$proid=$_POST['ITEM']; 

$sql ='select cantidad from productos WHERE id=$proid'

if(!
$sql){
die(
"Error: " mysql_error());
}



$res mysql_query($sql); 
$cantidadActual mysql_fetch_assoc($res);
$cantidadActual $cantidadActual["cantidad"];
if (
$cantidadActual == 0){ 
     
echo 
'No quedan' .$res['producto1''en inventario']; 

    } 
else { 

mysql_query("UPDATE productos SET cantidad = cantidad -1 WHERE id='$proid'"); 
header("location: tableedit.php#page=addproitem");  

?>
A ver si te aparece algún error.
  #5 (permalink)  
Antiguo 26/03/2015, 15:08
 
Fecha de Ingreso: diciembre-2006
Mensajes: 83
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: verificar que el contador se dentenga en cero

Si, me sigue apareciendo el mismo error. En :
$cantidadActual = mysql_fetch_assoc ($res);
__________________
Dhampire // Blog | Videos Breakdance
  #6 (permalink)  
Antiguo 26/03/2015, 15:22
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: verificar que el contador se dentenga en cero

¿Qué es esto?

Código PHP:
Ver original
  1. echo 'No quedan' .$res['producto1'. 'en inventario'];

¿No debería ser así?

Código PHP:
Ver original
  1. echo "No quedan " .$res['producto1']. " en inventario";

__________________
¿Te sirvió la respuesta? Deja un +1
  #7 (permalink)  
Antiguo 26/03/2015, 15:35
 
Fecha de Ingreso: diciembre-2006
Mensajes: 83
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: verificar que el contador se dentenga en cero

Si, ya me había dado cuenta. Pero igual, error no está ahí :(
Cita:
Iniciado por NueveReinas Ver Mensaje
¿Qué es esto?

Código PHP:
Ver original
  1. echo 'No quedan' .$res['producto1'. 'en inventario'];

¿No debería ser así?

Código PHP:
Ver original
  1. echo "No quedan " .$res['producto1']. " en inventario";

__________________
Dhampire // Blog | Videos Breakdance
  #8 (permalink)  
Antiguo 26/03/2015, 19:24
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: verificar que el contador se dentenga en cero

Prueba con mysqli_fetch_assoc.
__________________
¿Te sirvió la respuesta? Deja un +1
  #9 (permalink)  
Antiguo 26/03/2015, 19:57
 
Fecha de Ingreso: diciembre-2006
Mensajes: 83
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: verificar que el contador se dentenga en cero

Cita:
Iniciado por NueveReinas Ver Mensaje
Prueba con mysqli_fetch_assoc.
sigue igual :/
__________________
Dhampire // Blog | Videos Breakdance
  #10 (permalink)  
Antiguo 26/03/2015, 20:01
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: verificar que el contador se dentenga en cero

Cita:
Iniciado por Dhampire Ver Mensaje
sigue igual :/
¿Seguro? Muéstranos el error y el código, por favor.
__________________
¿Te sirvió la respuesta? Deja un +1
  #11 (permalink)  
Antiguo 26/03/2015, 20:08
 
Fecha de Ingreso: diciembre-2006
Mensajes: 83
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: verificar que el contador se dentenga en cero

Cita:
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\inventario\updateproduct.php on line 13
No quedan
No importa cual sea el producto, da ese error. Nunca pasa a restar productos
__________________
Dhampire // Blog | Videos Breakdance
  #12 (permalink)  
Antiguo 26/03/2015, 20:16
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: verificar que el contador se dentenga en cero

Cita:
Iniciado por Dhampire Ver Mensaje
No importa cual sea el producto, da ese error. Nunca pasa a restar productos
Pero tu código tiene errores, sino funcionaría.
No código, no solución. Así de simple.

Y creo que esto está mal:

Código PHP:
Ver original
  1. $sql ='select * from productos where producto';

No estableces un parámetro en el "where".
__________________
¿Te sirvió la respuesta? Deja un +1
  #13 (permalink)  
Antiguo 26/03/2015, 20:34
 
Fecha de Ingreso: diciembre-2006
Mensajes: 83
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: verificar que el contador se dentenga en cero

Estoy trabajando con el codigo que me paso @isaacanet pero igual no funciona :/

Cita:
<?php
include("db.php");
$proid=$_POST['ITEM'];

$sql ='select cantidad from productos WHERE producto=$proid';

if(!$sql){
die("Error: " . mysql_error());
}

$res = mysql_query($sql);
$cantidadActual = mysql_fetch_assoc($res);
$cantidadActual = $cantidadActual["cantidad"];
if ($cantidadActual == 0){

echo 'No quedan' .$res['producto1']. 'en inventario';

}
else {

mysql_query("UPDATE productos SET cantidad = cantidad -1 WHERE id='$proid'");
header("location: tableedit.php#page=addproitem");
}
?>
__________________
Dhampire // Blog | Videos Breakdance
  #14 (permalink)  
Antiguo 26/03/2015, 20:36
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: verificar que el contador se dentenga en cero

¿Qué error te muestra?
__________________
¿Te sirvió la respuesta? Deja un +1
  #15 (permalink)  
Antiguo 26/03/2015, 20:46
 
Fecha de Ingreso: diciembre-2006
Mensajes: 83
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: verificar que el contador se dentenga en cero

Cita:
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\inventario\updateproduct.php on line 13
No quedan productos
Ese es el error que me sale
__________________
Dhampire // Blog | Videos Breakdance
  #16 (permalink)  
Antiguo 26/03/2015, 20:51
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: verificar que el contador se dentenga en cero

No leíste entonces el manual que te puse.
__________________
¿Te sirvió la respuesta? Deja un +1
  #17 (permalink)  
Antiguo 26/03/2015, 21:11
 
Fecha de Ingreso: diciembre-2006
Mensajes: 83
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: verificar que el contador se dentenga en cero

Si, lo leí... Igual no me funciono
__________________
Dhampire // Blog | Videos Breakdance
  #18 (permalink)  
Antiguo 26/03/2015, 21:14
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: verificar que el contador se dentenga en cero

¿Podrías poner el código de db.php?
__________________
¿Te sirvió la respuesta? Deja un +1
  #19 (permalink)  
Antiguo 26/03/2015, 21:26
 
Fecha de Ingreso: diciembre-2006
Mensajes: 83
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: verificar que el contador se dentenga en cero

Es sencilla

Código SQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `productos` (
  2. `id` INT(11) NOT NULL,
  3.   `producto` VARCHAR(100) NOT NULL,
  4.   `cantidad` INT(11) NOT NULL
  5. ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;
  6.  
  7. --
  8. -- Volcado de datos para la tabla `productos`
  9. --
  10.  
  11. INSERT INTO `productos` (`id`, `producto`, `cantidad`) VALUES
  12. (1, 'producto1', 8),
  13. (2, 'producto2', 6),
  14. (3, 'producto3', 2),
  15. (4, 'producto4', 0);
__________________
Dhampire // Blog | Videos Breakdance
  #20 (permalink)  
Antiguo 26/03/2015, 21:30
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: verificar que el contador se dentenga en cero

Cita:
Iniciado por Dhampire Ver Mensaje
Es sencilla

Código SQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `productos` (
  2. `id` INT(11) NOT NULL,
  3.   `producto` VARCHAR(100) NOT NULL,
  4.   `cantidad` INT(11) NOT NULL
  5. ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;
  6.  
  7. --
  8. -- Volcado de datos para la tabla `productos`
  9. --
  10.  
  11. INSERT INTO `productos` (`id`, `producto`, `cantidad`) VALUES
  12. (1, 'producto1', 8),
  13. (2, 'producto2', 6),
  14. (3, 'producto3', 2),
  15. (4, 'producto4', 0);
¿Seguro que es eso?
Porque me parece que tu problema es que en ningún momento conectas con la base de datos.

__________________
¿Te sirvió la respuesta? Deja un +1
  #21 (permalink)  
Antiguo 26/03/2015, 21:44
 
Fecha de Ingreso: diciembre-2006
Mensajes: 83
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: verificar que el contador se dentenga en cero

perdon, esa era la base de datos

Este es el archivo db.php
Código PHP:
Ver original
  1. <?php
  2. $mysql_hostname = "localhost";
  3. $mysql_user = "root";
  4. $mysql_password = "";
  5. $mysql_database = "bits";
  6. $bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password)
  7. or die("Opps some thing went wrong");
  8. mysql_select_db($mysql_database, $bd) or die("Opps some thing went wrong");
  9.  
  10. ?>

Mi conexion funciona perfectamente. Si le quito el if al archivo y solo dejo el "mysql_query("UPDATE productos SET cantidad = cantidad -1 WHERE id='$proid'"); " se va restando las cantidades de la base de datos.

Es solo que si sigo seleccionando pasan a numeros negativos y es lo que quiero evitar.

PD: "bits" es el nombre de la base de datos
__________________
Dhampire // Blog | Videos Breakdance
  #22 (permalink)  
Antiguo 26/03/2015, 21:48
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: verificar que el contador se dentenga en cero

Está bien. Te invito a que leas de nuevo el manual sobre mysqli_fetch_assoc, porque espera otro parámetro (el de conexión) y no se lo estás dando.
__________________
¿Te sirvió la respuesta? Deja un +1
  #23 (permalink)  
Antiguo 27/03/2015, 22:52
 
Fecha de Ingreso: diciembre-2006
Mensajes: 83
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: verificar que el contador se dentenga en cero

Pues no, no he podido lograrlo :/
__________________
Dhampire // Blog | Videos Breakdance

Etiquetas: contador, inventario
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 05:40.