Hola a todos: Explicare lo mejor posible
(Ya he buscado bastante en los foros antes de preguntar.... y no encontre lo que necesitaba)
Lo que pretendo hacer es algo parecido a las
Paginas Amarillas, un cliente o empresa puede comprar una publicidad en una
Categoria principal, pero dependiendo del plan elegido podria aparecer en otras Categorias.
Otro ejempo es el de
www.masterfile.com, tambien una fotografia puede aparecer en varias categorias.
Joomla hace algo parecido, en el administrador de modulos uno elije en que categorias aparecera dicho modulo o si aparecera en todas.
En
www.templatesmonster.com igual, una plantilla califica para aparecer en varias categorias.
Mi pregunta es como lograr esto almacenando los valores en la
DB y obiamente tener una pagina donde se ejecute la consulta
SQL y mostrar los registros que concuerden con dicha categoria.
La logica que tenia pensado para esto es: una tabla con la lista de categorias, y otra con la lista de fotos
categorias
id_cat
cat_name
Fotos
id_foto
id_cat
(categoria principal)
id_cat_extra
(o dejar un solo campo con la lista de categorias a la que pertenece la foto)
foto_nombre
etc....
Para almacenar los datos en la DB ulice una pequeña funcion que me guarda los campos separados por comas ej (2,6,10,14)
Código PHP:
function inCat($array){
return implode(',',$array);
}
Nada impresionante pero funciona, lo que he podido lograr con
SQL es que me busque los registros que concuerden con las categorias multiples.
Con la siguiente sentencia puedo buscar fotos de varias categorias y mostrarlas en una pagina
Código:
SELECT * FROM fotos WHERE c.id_cat IN (14,2,6)
Pero eso no es lo que quiero. Para buscar fotos que concuerden con una categoria intente los Siguente
Código:
SELECT * FROM fotos WHERE MATCH(id_cat) AGAINST('1 14 6');
no funciono porque esta sentencia busca palabras de mas de tres letras, por eso intente lo siguiente
Código:
SELECT * FROM fotos WHERE MATCH(id_cat) AGAINST('categoria1 categoria14 categoria6');
Funciono a medias porque no siempre me concordabvan los resultados.
Algunos podrian sugerir que en la tabla
fotos agregue los campos de las categorias extra. Pero no me parece buena idea por que si se restringiria la cantidad de categorias extra disponibles. ej
Fotos
id_foto
id_cat
id_cat_ex1
id_cat_ex2
id_cat_ex3
id_cat_ex4
Si tengo 10,15,20 categorias solo podria elegir 4 extra, pero en algun momento alguna foto podria aplicar en varias categorias
Ej: una Flor en la categoria flores, orquideas, ramos, cumpleaños, funerales etc.
Agradezco cualquier ayuda!