Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/08/2008, 04:33
scorm
 
Fecha de Ingreso: julio-2008
Mensajes: 85
Antigüedad: 15 años, 10 meses
Puntos: 2
Concatenar una consulta a base de datos - match against t LIKE

Hola a todos!

A ver si podeis ayudarme...porque me estoy volviendo loca. Quiero hacer un buscador, que buscará en las columnas 'titulo', 'descripcion' y 'palabras clave' de una tabla y en la columna 'categoría' de de otra tabla de la base de datos.
Tengo una serie de checkbox que el usuario pulsará para elegir en qué quiere buscar, si quiere sólo por título, o por categoría y palabras clave...

Hasta ahora no he podido hacerlo, directamente se busca en las 4 columnas, el problema es que no sé como concatenar las búsquedas...

Estoy haciendo las consultas (si se ha intruducido en el buscador una sóla palabra) con LIKE y si se introducen más con MATCH...AGAINST, para poder usar ésta última he creado índices fultext, en una tabla un índice con 'titulo','palabras clave' y 'descripcion' y en la otra tabla otro indice fultext con 'categoria'.

Os enseño el código que tengo para las consultas a ver si me decis como podría concatenarlas, porque como he dicho hasta ahora consulto en todo...

Código:
	if ($numero==1) {
	   $ssql="SELECT * FROM tabla1 WHERE UPPER(titulo) like UPPER('%".$buscar."%') OR UPPER(palabraclave) like UPPER('%".$buscar."%') OR UPPER(descripcion) like UPPER('%".$buscar."%') LIMIT 50";
	   $ssql1="SELECT * FROM tabla2 WHERE UPPER(categorias) like UPPER('%".$buscar."%')LIMIT 50";
	} 
	else{
	   $ssql="SELECT *, MATCH (titulo,descripcion,palabraclave) AGAINST ('$buscar') AS puntuacion FROM tabla1 WHERE MATCH (titulo,descripcion,palabraclave) AGAINST ('$buscar' IN BOOLEAN MODE) ORDER  BY puntuacion DESC";
	   $ssql1="SELECT *, MATCH (categorias) AGAINST ('$buscar') AS puntuacion FROM tabla2 WHERE MATCH (categorias) AGAINST ('$buscar' IN BOOLEAN MODE) ORDER  BY puntuacion DESC";
    
	}
Muchas graciassss