Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problema variable en el WHERE

Estas en el tema de Problema variable en el WHERE en el foro de Mysql 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:52
 
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>';


Tmb consulte en el foro de php pero no se si me daran Bola ahi..Espero que aca si! Gracias!!

Última edición por alekorn102; 26/09/2011 a las 23:17
  #2 (permalink)  
Antiguo 27/09/2011, 00:54
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Problema variable en el WHERE

Creo que realmente es un problema de php. Quizás así lo resuelvas.
$sql_qty = "UPDATE t_stock SET cantidad = cantidad + $qty WHERE producto = '{$producto}' ";

si pones entre comillas '$producto' lo entiende no como una variable sino como una cadena de texto, es decir, no se trae el valor sino que busca exactamente $producto y ningún producto se llama $producto.
  #3 (permalink)  
Antiguo 27/09/2011, 08:06
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 7 meses
Puntos: 91
Respuesta: Problema variable en el WHERE

en

SET cantidad = cantidad + '$qty'

Quieres sumarle un valor? o concatenar el texto?

si es el primer caso quitale las comillas simples, si recae en el segundo utiliza la funcion CONCAT de MySQL

Saludos.
  #4 (permalink)  
Antiguo 27/09/2011, 12:03
 
Fecha de Ingreso: junio-2011
Mensajes: 54
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: Problema variable en el WHERE

El problema es que la cantidad me la suma bien si yo en vez de poner la variable pongo el nombre del producto exacto va perfecto asi que el problema esta en la variable $producto le agregue los corchetes como dijo jurena y nada.. que raroo me quema a cabeza esto!
  #5 (permalink)  
Antiguo 27/09/2011, 12:18
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 7 meses
Puntos: 91
Respuesta: Problema variable en el WHERE

haz

Código PHP:
Ver original
  1. var_dump($producto);

y pon que sale
  #6 (permalink)  
Antiguo 27/09/2011, 12:39
Avatar de Rodrhigo  
Fecha de Ingreso: septiembre-2011
Ubicación: Temuco-Valdivia-Osorno
Mensajes: 254
Antigüedad: 12 años, 6 meses
Puntos: 48
Respuesta: Problema variable en el WHERE

oye es poco practico hacer ese update que haces(estas duplicando datos).
Te recomiendo calcular el stock de la siguiente forma:
Código MySQL:
Ver original
  1. select count(*) from t_entrada where producto='xxx'
xxx es el nombre de el producto que deseas buscar.
----------------------------------------------
Para traer todos los stock de todos los productos:
Código MySQL:
Ver original
  1. select count(*) from t_entrada group by producto

--------------------------------------------------
y con eso te evitas enviar un update.
otra opcion es crear disparadores en la base de datos.
  #7 (permalink)  
Antiguo 27/09/2011, 13:13
 
Fecha de Ingreso: junio-2011
Mensajes: 54
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: Problema variable en el WHERE

el tema que al codigo yo lo saque de otro lado y funcionaba perfectooo era lo que queria!
no se que hago mal..
si hago un var_dump me sale esto:

string(11) " Coleccion "

que tiene unos espacios a los costados del producto? Sera eso??

antes hice un echo de la variable $producto y me salia perfecto el nombre del producto

Última edición por alekorn102; 27/09/2011 a las 13:32
  #8 (permalink)  
Antiguo 27/09/2011, 14:13
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 7 meses
Puntos: 91
Respuesta: Problema variable en el WHERE

donde tienes

Código PHP:
Ver original
  1. $producto = $producto[$ini];

prueba poniendo

Código PHP:
Ver original
  1. $producto = trim($producto[$ini]);

saludos
  #9 (permalink)  
Antiguo 27/09/2011, 14:29
 
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 Ribon Ver Mensaje
donde tienes

Código PHP:
Ver original
  1. $producto = $producto[$ini];

prueba poniendo

Código PHP:
Ver original
  1. $producto = trim($producto[$ini]);

saludos



Groooooosoooo Gracias!!! ahora porque le crea esos espacios al principio y al final?
  #10 (permalink)  
Antiguo 27/09/2011, 15:21
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 7 meses
Puntos: 91
Respuesta: Problema variable en el WHERE

Revisate bien el origen de $_POST['producto']
viene de un formulario?
  #11 (permalink)  
Antiguo 27/09/2011, 17:05
 
Fecha de Ingreso: junio-2011
Mensajes: 54
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: Problema variable en el WHERE

Si viene de un formulario, lo solucione con trim en la variable $producto

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 05:50.