Foros del Web » Programando para Internet » PHP »

mostrar registro en varias categorias

Estas en el tema de mostrar registro en varias categorias en el foro de PHP en Foros del Web. Hola: tengo dos tablas una que se llama caballos y otra que se llama pages, lo que tengo que hacer (y nose como jeje) es ...
  #1 (permalink)  
Antiguo 09/02/2009, 17:43
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
mostrar registro en varias categorias

Hola:
tengo dos tablas una que se llama caballos y otra que se llama pages, lo que tengo que hacer (y nose como jeje) es si un registro tiene varias pages mostrarlas en esas paginas. Por ejemplo:
tengo este registro:
caballos:
id_horse: 1
nombre: silver
raza: mustang
page: 1,4,5
id_horse: 2
nombre: san martin
raza: pingo
page: 4,5

y en la tabla page tengo
id_page: 1
nombre: mustang
id_page:4
nombre: vendidos
id_page:5
nombre:machos

bueno la idea es que cuando yo entro a la pagina (cada pagina es una categoria en la db) "machos" muestre todos los caballos que tenga esa categoria.
Espero que se haya entendido y que me puedan dar una mano...

salu2
  #2 (permalink)  
Antiguo 09/02/2009, 17:53
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: mostrar registro en varias categorias

Haz una consulta usando LIKE. En este ejemplo quiero buscar caballos en la categoría 1

Código sql:
Ver original
  1. SELECT * FROM caballos WHERE page = '1' OR page LIKE '1,%' OR page LIKE '%,1,%' OR page LIKE '%,1'
Lamentablemente tienes que poner esas 4 condiciones necesariamente.

Ahora, hay un pequeño truco para simplificar el proceso, y es añadir un cero al inicio y al final del valor del campo en el que vas a buscar, en este caso, en page. Osea, debería quedar algo como '0,1,4,5,0'

Así, la consulta sería usando sólo una condición:

Código sql:
Ver original
  1. WHERE page LIKE '%,1,%'

Ya usando PHP colocas el id de la categoría que deseas.

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 16:12.