Foros del Web » Programando para Internet » PHP »

Problema variable en el WHERE

Estas en el tema de Problema variable en el WHERE en el foro de PHP en Foros del Web. Sigo con un problema en mi proyecto de inventario.. Tengo dos tablas en una me entra y salen productos y en la otra me figura ...
  #1 (permalink)  
Antiguo 26/09/2011, 22:46
 
Fecha de Ingreso: junio-2011
Mensajes: 54
Antigüedad: 12 años, 10 meses
Puntos: 1
Pregunta Problema variable en el WHERE

Sigo con un problema en mi proyecto de inventario.. Tengo dos tablas en una me entra y salen productos y en la otra me figura el stock que me va quedando de cada producto..ahora la idea es que cuando ingresas cantidades a determinados productos tendria que hacer un insert en la tabla productos para los movimientos y un update en la tabla stock. el problema es con el update en la parte del WHERE no me reconoce la igualdad entonces no me hace la cuenta, ahora si en vez de poner la variable pongo el nombre del producto exacto funciona perfecto. aclaro que la variable me trae el producto bien ya que le hice un echo a la variable $producto y estaba bien. les dejo el codigo a ver si ustedes pueden ver que hago mal.. espero haber sido claroo (me estoy volviendo loco!!!)

Gracias Gente!!


Código MySQL:
Ver original
  1. $producto = $_POST['producto'];
  2. $proveedor = $_POST['proveedor'];
  3. $ubicacion = $_POST['ubicacion'];
  4. $qty = $_POST['qty'];
  5. $fecha = $_POST['fecha'];
  6. $remito = $_POST['remito'];
  7. $estado = $_POST['estado'];
  8. $coment = $_POST['coment'];
  9. $users = $_POST['users'];
  10. $movim = $_POST['movim'];
  11.  
  12. // $ini es un contador,
  13. $ini = 0 ;
  14.  
  15.    
  16.     $producto = $producto[$ini];
  17.     $proveedor = $proveedor[$ini];
  18.     $ubicacion = $ubicacion[$ini];
  19.     $qty = $qty[$ini];
  20.     $fecha = $fecha[$ini];
  21.     $remito = $remito[$ini];
  22.     $estado = $estado[$ini];
  23.     $coment = $coment[$ini];
  24.    
  25. $sql_insert = "INSERT INTO t_entrada (producto, proveedor, ubicacion, qty, fecha, remito, estado, coment, users, movim) VALUES ( '$producto', '$proveedor', '$ubicacion', '$qty', '$fecha', '$remito', '$estado', '$coment', '$users', '$movim')";
  26. $sql_qty = "UPDATE t_stock SET cantidad = cantidad + '$qty' WHERE producto = '$producto' ";
  27.  
  28.         mysql_query($sql_insert) or die(mysql_error(). " Query: " . $sql_insert);
  29.     mysql_query($sql_qty) or die(mysql_error(). " Query: " . $sql_qty);
  30.  
  31.     $ini++ ;
  32.  
  33.     echo '<div align="center">Lo operacion ha resultado satisfactoria</div>';

Última edición por alekorn102; 26/09/2011 a las 23:17
  #2 (permalink)  
Antiguo 26/09/2011, 23:56
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema variable en el WHERE

Código PHP:
Ver original
  1. // Tienes esto:
  2. $producto = $_POST['producto'];
  3.  
  4.  
  5. // Y mas abajo esto:
  6. // $ini es un contador,
  7. $ini = 0 ;
  8.    
  9.     $producto = $producto[$ini];

Entonces, en el formulario HTML debieras tener algo como:
<input type="text" name="producto[]" value="" />

Pero, no le veo mucho sentido, porque al parecer solo estas procesando un elemento y, en todo caso, con la linea $producto = $producto[$ini]; estas sobre-escribiendo la variable (ya viste que tienen el mismo nombre?), pero si es cadena, solo estas tomando el primer caracter.

Supongo que tomaste un script ya hecho y lo adaptaste a tus necesidades... bueno, sugiero eliminar desde $producto = $producto[$ini]; hasta $coment = $coment[$ini]; y tal vez funcione.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 27/09/2011, 12:30
 
Fecha de Ingreso: junio-2011
Mensajes: 54
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: Problema variable en el WHERE

asi es el formulario:
Código HTML:
Ver original
  1. <label><b>Producto:</b> <select name="producto" id="producto" value="" >
  2.                                         <option selected="selected">Seleccione el Producto</option>
  3.                                        
  4.                                     <option value=" '.$row_Producto['nombre'].' ">'.$row_Producto['nombre'].'</option>
  5.                                        
  6.                                     </select></label>';

Pero me parece que el problema no esta ahi..saque los corchetes en el formulario y comente lo que me dijiste y pasa lo mismo..
Para mi el problema es aca...
Código MySQL:
Ver original
  1. WHERE producto = '$producto'

porque si yo cambio la variable por el nombre exacto del producto me hace la suma perfecto!!! mira asi..
Código MySQL:
Ver original
  1. WHERE producto = 'Placa de Red'

Hice un var_dump a la variable $producto
y me salio esto :

string(11) " Coleccion "
sera por los espacio que hay despues de la comilla?


aclaro: al final hago un ECHO de estas dos variables $qty y $producto y me trae perfecto los datos...

Última edición por alekorn102; 27/09/2011 a las 13:32
  #4 (permalink)  
Antiguo 27/09/2011, 15:34
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema variable en el WHERE

El problema es que en el HTML estas agregando espacios al nombre del producto:

Código:
<option value=" '.$row_Producto['nombre'].' ">

// Quedaria como:
<option value=" Placa de Red ">

// Que debes hacer?... juntar las comillas sencillas con las dobles
<option value="'.$row_Producto['nombre'].'">
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 27/09/2011, 17:06
 
Fecha de Ingreso: junio-2011
Mensajes: 54
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: Problema variable en el WHERE

Cita:
Iniciado por Triby Ver Mensaje
El problema es que en el HTML estas agregando espacios al nombre del producto:

Código:
<option value=" '.$row_Producto['nombre'].' ">

// Quedaria como:
<option value=" Placa de Red ">

// Que debes hacer?... juntar las comillas sencillas con las dobles
<option value="'.$row_Producto['nombre'].'">
Groso te agradezco!! Muchas Gracias!

Etiquetas: variables
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 23:41.