PHP - Ayuda con este sencillo codigo de actualización!!

 
Vista:
Imágen de perfil de John
Val: 91
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con este sencillo codigo de actualización!!

Publicado por John (33 intervenciones) el 20/04/2018 17:17:31
Hola amigos, no se si postear esto por php o mysql.

en el siguiente codigo tengo una simple consulta para actualizar un registro, especificamente la cantidad, le quiero hacer una resta a un articulo que tengo registrado en la bd.

pero el script corre y no me arroja ningun error, pero tampoco me actualiza nada en la bd

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
include '../../bd/conexion.php';
echo "Monto Solicitado: ".$solicitado=$_POST['cantidad']."<br>";
settype($solicitado,"double"); //transformar variable en float
echo "Alimento: ".$ali=$_GET['ali']."<br>";
 
$consulta="select sum(cantidad) as cuenta from m_alimentacion where id_alimentos='$_GET[ali]'";
 
$resultado=mysqli_query($conexion,$consulta);
 
while($fila=mysqli_fetch_array($resultado)){
	echo "Monto Disponible: ".$disponible=$fila['cuenta'];
	echo "<br>";
	settype($disponible,"double");
}
 
//echo gettype($solicitado);     verificar que tipo de datos es la variable
//echo gettype($disponible);
 
echo "<br>";
 
if ($solicitado <= $disponible){
	echo "Resultado: ".$resta=$disponible-$solicitado;
	echo "<br>";
	echo "Tipo de numero en resta: ". gettype($resta);
	echo "<br>";
	echo "Tipo de numero en formato 2 decimales: ". gettype($resta);
	$consulta1="UPDATE m_alimentacion SET cantidad=$resta
	WHERE id_alimentos='$ali'";
	$resultado1=mysqli_query($conexion,$consulta1)or die(mysqli_error());
	/*echo "<script>
		alert('Alimento egresado correctamente');
		window.location.href='m1_alimentacion.php';
		 </script>";*/
	}
	else{
		echo "Cantidad insuficiente, vuelve a intentarlo";
}

probe varias veces el tipo de variable q recibo del formulario,de los calculos y consulta del while para evitar tratar con string con la funcion gettype(), en la BD probe con los tipos de dato float y decimal y no me funciona ninguno, realizando la consulta en el sql de mysql se realiza perfecto, asi q debo tener algun erron el el php
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con este sencillo codigo de actualización!!

Publicado por Yamil Bracho (888 intervenciones) el 20/04/2018 17:34:52
Imprime el SQL que se esta ejecutando

1
2
3
4
$consulta1="UPDATE m_alimentacion SET cantidad=$resta
WHERE id_alimentos='$ali'";
echo $consulta1;
o var_dump($consulta1);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de John
Val: 91
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con este sencillo codigo de actualización!!

Publicado por John (33 intervenciones) el 20/04/2018 17:44:18
Hola Yamil, gracias por responder. sale estos con echo $consulta1;
UPDATE m_alimentacion SET cantidad=100 WHERE id_alimentos='A_0123
'

y esto con var_dump($consulta1);

string(72) "UPDATE m_alimentacion SET cantidad=100 WHERE id_alimentos='A_0123
'"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de John
Val: 91
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con este sencillo codigo de actualización!!

Publicado por John (33 intervenciones) el 20/04/2018 17:59:39
Bueno ya lo solucione amigo, gracias a estas pista q me diste, me di cuenta que $ali de alguna forma se le agregan espacios imagino al final y la consulta no se ejecuta por esto, lo que hice fue recibir la variable directo del formulario en el where asi
1
"UPDATE m_alimentacion SET cantidad=$resta WHERE id_alimentos='$_GET[ali]'"

sin embargo tengo la duda de como evitar que suceda eso, estoy atento para cualquier sugerencia o consejo q puedas darme, gracias Yamil!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda con este sencillo codigo de actualización!!

Publicado por anonymous (24 intervenciones) el 20/04/2018 20:11:08
pasa eso porque definiste a $ali como $_GET['ali']."<br>"; (linea 5) lo que deberias hacer es definir $ali como $_GET['ali']; y poner el <br> al lado:

1
2
$ali = $_GET['ali'];
echo "Alimento: ".$ali."<br>";
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de John
Val: 91
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con este sencillo codigo de actualización!!

Publicado por John (33 intervenciones) el 20/04/2018 20:48:00
tienes toda la razon syaf, esa es la causa, muchas gracias por tu ayuda, es para mi muy importante que me hayas ayudado, esta clase de detallitos cambian enormemente el resultado de nuestros proyectos, te lo agredezco mucho hermano!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda con este sencillo codigo de actualización!!

Publicado por anonymous (24 intervenciones) el 21/04/2018 08:34:17
De nada amigo, suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar