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

Mostrar datos si es igual al parametro pasado por GET

Estas en el tema de Mostrar datos si es igual al parametro pasado por GET en el foro de Mysql en Foros del Web. Hola, buenos dias... Tengo 2 tablas : Articulo & categoria en categoría.php quiero que solo me muestre los articulos que pertenesca a la categoría escogida... ...
  #1 (permalink)  
Antiguo 30/05/2014, 21:18
 
Fecha de Ingreso: abril-2014
Mensajes: 26
Antigüedad: 10 años
Puntos: 0
Mostrar datos si es igual al parametro pasado por GET

Hola, buenos dias...

Tengo 2 tablas : Articulo & categoria

en categoría.php quiero que solo me muestre los articulos que pertenesca a la categoría escogida...
Código SQL:
Ver original
  1. SELECT *
  2. FROM tabla_articulo
  3. WHERE tabla_articulo.Categoria1 OR tabla_articulo.Categoria2 OR tabla_articulo.Categoria3 = %s
  4. ORDER BY tabla_articulo.id DESC
Cita:
Editado: Código de programación no permitido en foros de Bases de Datos.
Leer las normas del foro, por favor.
Hice esta consulta a la BD con dreamweaver, pero el problemilla comienza aka...

* el articulo puede pertenecer a varias categorías, por eso le puse hasta 3 campos como máximo para que pertenesca a diferentes categorías, intento hacer mediante esa consulta que SI en cualquiera de esos 3 campos es igual al parametro enviado, entonces que muestre el articulo, pero... si pruebo a ponerlo con otro ID que no está en ninguno de esos tres campos de la tabla del articulo, IGUAL LO MUESTRA...

espero su ayuda please!

Última edición por gnzsoloyo; 30/05/2014 a las 21:35
  #2 (permalink)  
Antiguo 30/05/2014, 21:37
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Mostrar datos si es igual al parametro pasado por GET

El WHERE está mal redactado.
Cada uno de los campos que se quiere comparar debe llevar la comparación:
Código MySQL:
Ver original
  1. FROM tabla_articulo
  2.     Categoria1  = %s
  3.     OR Categoria2 = %s  
  4.     OR Categoria3 = %s
Te está devolviendo todo, porque si no le haces una comparación lógica, será true con sólo que el campo contenga ALGO.
¿Se entiende?

Posdata, el cómo pases el parámetro es off-topic en este foro. Aquí sólo tratamos temas de SQL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 31/05/2014, 06:09
 
Fecha de Ingreso: abril-2014
Mensajes: 26
Antigüedad: 10 años
Puntos: 0
Respuesta: Mostrar datos si es igual al parametro pasado por GET

Okay! si entendi, gracias!!

Pero... ya lo había intentado de esa forma y me votaba esto :

Código:
Warning: sprintf(): Too few arguments in C:\xampp\htdocs\prueba.com\en-espanol\categoria.php on line 18
Query was empty
Pero si le pongo de esta manera, si me funciona :

Código:
WHERE Categoria1 = '10' OR Categoria2 = '10' OR Categoria3 = '10'
ó de esta otra manera también :

Código:
WHERE Categoria1 = '$variable' OR Categoria2 = '$variable' OR Categoria3 = '$variable'
donde: $variable = $_GET['catID'];

Pude haberlo dejado así, pero me gustaría saber el porque de que NO se puede hacer de la primera manera, por ahora lo dejare así... pero estaré esperando una respuesta para ver la razón del error.


Gracias.

Etiquetas: campo, igual, parametro, php, select, sql, tabla
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 22:54.