Les explico estoy practicando web y tengo el siguiente ejercicio que estoy haciendo:
Ingreso en un Form HTML las cantidades deseadas de X productos, al ingresar dicha cantidad inmediatamente me genera un input hidden en el cual se crea un identificador por cada elemento elegido.
Envío esto a un PHP que me va a recoger todos los datos del Form de los articulos y me va a hacer el update en mi BD cambiando las cantidades de los productos escogidos.
El problema es que obtengo un error de Sintaxis que no logro entender ni porque pasa ni como repararlo.
Aquí les traigo el código del lado del PHP.
Código
<?php class extraerCantidad{ private $identificadorCantidad; private $valorCantidad; private $conex; private $registros; public function __construct(){ } public function ingresarCantidad($cant){ $this->valorCantidad=$cant; } public function ingresarDescripcion($desc){ $this->identificadorCantidad=$desc; } public function cambioCantidad() { $this->registros=mysqli_query($this->conex, "update articulos set cantidad=cantidad-$this->valorCantidad where descripcion='$this->identificadorCantidad'") or die(mysqli_error($this->conex)); echo "Cantidad Actualizada".'<br>'; } } /* Recorro todos los envios POST que me llegan desde el Form HTML*/ foreach ($_POST as $valorCampo) { /*Ignoro cualquier campo en blanco para prevenir errores*/ if ($valorCampo!=="") { /*Separo de todos los _POST por medio de filtrado aquellos que sean los identificadores del articulo (o descripcion) y las cantidades*/ /*Procedo a Crear las Nuevas Ordenes*/ $nuevaOrden=new extraerCantidad(); /*Asigno cantidad Extraida*/ $nuevaOrden->ingresarCantidad($cantidad); /*Asigno Descripcion o Identificador*/ $nuevaOrden->ingresarDescripcion($descripcion); /*Llamo a la funcion que hace el Query Update en mi BD*/ } $nuevaOrden->cambioCantidad(); } } ?>
Recibo este error (Cabe destacar que CocaCola puede ser cualquier otro identificador que reciba): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where descripcion='CocaCola'' at line 1
Curiosamente, cuando ingreso el identificador de forma manual en la linea del query, me sigue arrojando el error, pero me hace el cambio de cantidad en el elemento deseado.
Saludos.