Foros del Web » Programando para Internet » PHP »

No pasa la variable ...

Estas en el tema de No pasa la variable ... en el foro de PHP en Foros del Web. Buenas tardes, Estoy realizando una consulta a la BBDD con 3 tablas, en la cual me muestra distintos campos. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original ...
  #1 (permalink)  
Antiguo 21/12/2010, 07:56
 
Fecha de Ingreso: febrero-2010
Mensajes: 52
Antigüedad: 14 años, 2 meses
Puntos: 0
Busqueda No pasa la variable ...

Buenas tardes,

Estoy realizando una consulta a la BBDD con 3 tablas, en la cual me muestra distintos campos.

Código MySQL:
Ver original
  1. select pa.id as paid, pa.referencia as referencia,
  2. pa.familia as familia,
  3. pa.color as color, pa.medidas_externas as medidasexternas,
  4. pa.capacidad_interna as capacidadinterna,
  5. pa.descripcion as descripcion,
  6.  
  7. cp.idproducto as cpidproducto,
  8. cp.idcategoria as cpidcategoria,
  9. mp.idproducto as mpidproducto2,
  10. mp.idmaterial as idmaterial
  11.  
  12. from productos_abadias pa, caracteristicasproducto cp, materialesproductos mp
  13.  
  14. where pa.id = cp.idproducto
  15. and pa.id = mp.idproducto
  16. and cp.idcategoria = "4"

estoy pasando la variable desde un formulario en el cual el usuario con radiobuttons puede elegir varias opciones (cada opcion tiene un numero asignado) y en la BBDD los datos estan metidos con esos numeros para ese campo.

Pero al pasar la variable por $_POST, me devuelve un error como que no esta definida la variable.

Os pongo un ejemplo de los radios
Código PHP:
<input type="radio" name="idcategoria" value="<?php $_POST['7']; ?>"  />Con Asa <br />
<input type="radio" name="idcategoria" value="<?php $_POST['8']; ?>"  />Con Calculadora <br />
<input type="radio" name="idcategoria" value="<?php $_POST['9']; ?>"  />A5
Si seguro que una tonteria, pero no me muestra los datos (lo he probado en mysql y funciona perfectamente, luego le puesto un echo ""; al mysql para que me muestre y luego copiar y pegar en el mysql y funciona ... asi que debe ser la variable.

¿Me podriais echar un cable?

Gracias :P
  #2 (permalink)  
Antiguo 21/12/2010, 08:43
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: No pasa la variable ...

Código PHP:
Ver original
  1. <?php $_POST['9']; ?>

Te falta hacer un echo.

Queda así:

Código PHP:
Ver original
  1. <?php echo $_POST['9']; ?>

Por otro lado, no me convence usar indices numericos en el POSt. Pero no creo que sea problema.
  #3 (permalink)  
Antiguo 21/12/2010, 08:51
 
Fecha de Ingreso: febrero-2010
Mensajes: 52
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: No pasa la variable ...

Cita:
Iniciado por mayid Ver Mensaje
Código PHP:
Ver original
  1. <?php $_POST['9']; ?>

Te falta hacer un echo.

Queda así:

Código PHP:
Ver original
  1. <?php echo $_POST['9']; ?>

Por otro lado, no me convence usar indices numericos en el POSt. Pero no creo que sea problema.
Buenas mayid,

aunque le ponga el echo, el error que me salta que
Código MySQL:
Ver original
  1. "select pa.id as paid, pa.referencia as referencia,
  2. pa.familia as familia,
  3. pa.color as color, pa.medidas_externas as medidasexternas,
  4. pa.capacidad_interna as capacidadinterna,
  5. pa.descripcion as descripcion,
  6.  
  7. cp.idproducto as cpidproducto,
  8. cp.idcategoria as cpidcategoria,
  9. mp.idproducto as mpidproducto2,
  10. mp.idmaterial as idmaterial
  11.  
  12. from productos_abadias pa, caracteristicasproducto cp, materialesproductos mp
  13.  
  14. where pa.id = cp.idproducto
  15. and pa.id = mp.idproducto
  16. and cp.idcategoria ='".$_POST['cpidproducto']."'"

Notice: Undefined index: cpidproducto ...

El $_POST del sql no es correcto ... aunque se que el campo en la bbdd se llama asi (bueno mejor dicho no, ya que hay varias tablas que tienen nombre de campos identicos).
Y poniendole un alias, no me coje el nombre de la columna y si no le pongo alias, no coge el nombre del campo.

Y ahora mismo estoy un poco saturado y no doy pie con bola :(
  #4 (permalink)  
Antiguo 21/12/2010, 09:26
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: No pasa la variable ...

Estas poniendo $_POST['9']; cuando deberías poner solo el valor de la constante, este caso "9".

<input type="radio" name="idcategoria" value="7" />Con Asa <br />
<input type="radio" name="idcategoria" value="8" />Con Calculadora <br />
<input type="radio" name="idcategoria" value="9" />A5
  #5 (permalink)  
Antiguo 21/12/2010, 09:38
 
Fecha de Ingreso: febrero-2010
Mensajes: 52
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: No pasa la variable ...

Hola Walterdevel,

Ese no es el problema, (ya que anteriormente) lo he probado antes de postear.

El error que me sale es: Notice: Undefined index: cpidproducto in y este cpidproducto, esta al final de la SQL .

Si pusiese solo el 7,8,9 luego puedo tener algun que otro problema de seguridad (inyeccion de sql) para eso es el post, además de programar 'bien' y no con $variable.
  #6 (permalink)  
Antiguo 21/12/2010, 10:51
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: No pasa la variable ...

El campo en el formulario se llama idcategoria, no cpidproducto. Además, lo que walterdevel te menciona es correcto, a menos que los campos del formulario los generes dinámicamente, o que simplemente sus valores provengan de otro formulario.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #7 (permalink)  
Antiguo 23/12/2010, 09:30
 
Fecha de Ingreso: febrero-2010
Mensajes: 52
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: No pasa la variable ...

Tienes razón con respecto al $_POST['x']; con lo otro ... no estoy muy deacuerdo, no obstante, voy a documentarme.

Un saludo.

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 02:04.