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

Buscador Multicriterio

Estas en el tema de Buscador Multicriterio en el foro de Mysql en Foros del Web. Hola quisiera hacer un buscador con criterios por ejemplo En un campo de texto escribir lo que deseo buscar pero ademas filtrar por dos menu ...
  #1 (permalink)  
Antiguo 13/09/2010, 14:49
 
Fecha de Ingreso: agosto-2010
Mensajes: 9
Antigüedad: 14 años, 2 meses
Puntos: 0
Buscador Multicriterio

Hola quisiera hacer un buscador con criterios por ejemplo

En un campo de texto escribir lo que deseo buscar pero ademas filtrar por dos
menu lista que son dos tablas de mi Base de datos..

Ej.

la busqueda
por tipo de producto
y por estado de producto

no se si me explico pero quisiera que me ayudaran
  #2 (permalink)  
Antiguo 13/09/2010, 19:37
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 19 años, 6 meses
Puntos: 79
Respuesta: Buscador Multicriterio

SELECT campo FROM tabla_productos WHERE campo_producto LIKE "busqueda_campo_texto%" AND campo_tipo_producto=selector_lista_tipo_producto AND campo_estado_producto=selector_lista_estado_produc to

lo demas son variables que tendrás que enviar por GET, POST, SESSION, REQUEST, o lo que sea que esten asociadas a cada <INPUT> o <SELECT>

por ese lado tu pregunta va mas tirado para el foro de PHP.

salu2
  #3 (permalink)  
Antiguo 15/09/2010, 09:52
 
Fecha de Ingreso: agosto-2010
Mensajes: 9
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Buscador Multicriterio

En vista que la ultima respuesta me funciono solo para buscar una sola palabra tuve que hacer lo siguiente...:


MI TABLA productos

CREATE TABLE `productos` (
`ID_PRODUCTO` INTEGER(11) NOT NULL AUTO_INCREMENT,
`TITULO` VARCHAR(250) COLLATE latin1_swedish_ci NOT NULL DEFAULT '',
`DESCRIPCION` TEXT COLLATE latin1_swedish_ci,
`DORMITORIOS` VARCHAR(20) COLLATE latin1_swedish_ci DEFAULT NULL,
`DIRECCION` VARCHAR(250) COLLATE latin1_swedish_ci DEFAULT NULL,
`PATIO` VARCHAR(20) COLLATE latin1_swedish_ci DEFAULT NULL,
`CIUDAD` VARCHAR(50) COLLATE latin1_swedish_ci DEFAULT NULL,
`BARRIO` VARCHAR(50) COLLATE latin1_swedish_ci DEFAULT NULL,
`DEPARTAMENTO` VARCHAR(50) COLLATE latin1_swedish_ci DEFAULT NULL,
`COCHERA` VARCHAR(50) COLLATE latin1_swedish_ci DEFAULT NULL,
`BANO` VARCHAR(50) COLLATE latin1_swedish_ci DEFAULT NULL,
`MEDIDACONTRUCION` VARCHAR(50) COLLATE latin1_swedish_ci DEFAULT NULL,
`ESTADO` INTEGER(11) DEFAULT NULL,
`PRECIO` VARCHAR(25) COLLATE latin1_swedish_ci DEFAULT NULL,
`ID_TIPO` INTEGER(11) DEFAULT NULL,
`VISITAS` INTEGER(11) DEFAULT NULL,
`OFERTAR` CHAR(1) COLLATE latin1_swedish_ci DEFAULT NULL,
PRIMARY KEY (`ID_PRODUCTO`),
UNIQUE KEY `ID_PRODUCTO` (`ID_PRODUCTO`),
FULLTEXT KEY `BUSCAR` (`TITULO`, `DESCRIPCION`, `CIUDAD`, `BARRIO`, `DEPARTAMENTO`, `DORMITORIOS`, `DIRECCION`, `MEDIDACONTRUCION`, `PRECIO`)

)ENGINE=MyISAM
AUTO_INCREMENT=496 CHARACTER SET 'utf8' COLLATE 'utf8_spanish_ci';



Y ESTA MI CONSULTA PARA MI BUSQUEDA

SELECT DISTINCT archivos.id_archivos, archivos.nombre_archivos, archivos.archivo_archivos, archivos.tipo_archivos, productos.ID_PRODUCTO, productos.TITULO, productos.DIRECCION, productos.DESCRIPCION, productos.DORMITORIOS, productos.PATIO, productos.CIUDAD, productos.BARRIO, productos.DEPARTAMENTO, productos.COCHERA, productos.BANO, productos.MEDIDACONTRUCION, productos.ESTADO, productos.PRECIO, productos.ID_TIPO, productos.VISITAS, productos.OFERTAR, estado.estado_des, tipo_producto.descripcion
FROM archivos RIGHT OUTER JOIN productos ON (archivos.tipo_archivos = productos.ID_PRODUCTO) INNER JOIN estado ON (productos.ESTADO = estado.id_estado) INNER JOIN tipo_producto ON (productos.ID_TIPO = tipo_producto.id_tipo)
WHERE MATCH (TITULO, DESCRIPCION, CIUDAD, BARRIO, DEPARTAMENTO, DORMITORIOS, DIRECCION, MEDIDACONTRUCION, PRECIO) AGAINST (colname)
GROUP BY ID_PRODUCTO
ORDER BY productos.ID_PRODUCTO DESC


Y CON ESTO ME TIRA ESTE ERROR



Column 'DESCRIPCION' in where clause is ambiguous

Espero alguna ayuda para solucionar este problema
  #4 (permalink)  
Antiguo 15/09/2010, 10:40
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Buscador Multicriterio

Estas llamando a la columna "DESCRIPCION" sin indicar de qué tabla la debe tomar, y hay al menos dos tablas que tienen una columna con ese nombre.
O le antepones el nombre de la tabla, o usas un alias para la tabla.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 15/09/2010, 12:39
 
Fecha de Ingreso: marzo-2010
Mensajes: 128
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Buscador Multicriterio

Qué pedazo de consulta!! jejeje. Bueno yo estoy con el mismo problema, necesito hacer un buscador multicriterio, pero no se como . Una pregunta ¿Qué función tiene el "ON" dentro de la consulta?

Saludos
  #6 (permalink)  
Antiguo 16/09/2010, 00:02
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 19 años, 6 meses
Puntos: 79
Respuesta: Buscador Multicriterio

Cita:
Iniciado por rubiomike Ver Mensaje
Qué pedazo de consulta!! jejeje. Bueno yo estoy con el mismo problema, necesito hacer un buscador multicriterio, pero no se como . Una pregunta ¿Qué función tiene el "ON" dentro de la consulta?

Saludos
Por mi parte lo ocupo para indicar con que campos se cruzan las tablas.

osea para un LEFT JOIN o RIGHT JOIN o INNER JOIN continuas con el nombre de la segunda tabla y luego el ON con el campo de la primera=campo de la segunda.

me pareces que si te equivocas de campo no te arroja error, pero dependiendo de que ocupaste te puede multiplicar el resultado al no encontrar cruce o no arrojar nada.

la idea es que al menos uno de los campos sea UNICO o PRIMARY KEY

salu2
  #7 (permalink)  
Antiguo 16/09/2010, 12:42
 
Fecha de Ingreso: marzo-2010
Mensajes: 128
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Buscador Multicriterio

Muchas gracias perr0 por la explicación.

Saludos.

Etiquetas: buscadores
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:09.