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

Algo no va bien

Estas en el tema de Algo no va bien en el foro de Mysql en Foros del Web. Buenas tardes, tengo dos tablas en mi base de datos (artistas y discos), que se relacionan por medio del id del artista. Pretendo crear un ...
  #1 (permalink)  
Antiguo 29/09/2008, 06:00
RJD
 
Fecha de Ingreso: enero-2006
Mensajes: 64
Antigüedad: 18 años, 3 meses
Puntos: 0
Algo no va bien

Buenas tardes,

tengo dos tablas en mi base de datos (artistas y discos), que se relacionan por medio del id del artista. Pretendo crear un buscador en la web, de manera que busque tanto por artista como por titulo del disco. Con algunas busquedas funciona correctamente y con otras no, no sé qué hay mal en este query:

Si es una sola palabra:
Cita:
"SELECT album.titulo as titulo, album.id as id, artistas.alias_princ as alias FROM artistas,album WHERE (titulo LIKE '%$busqueda%' AND album.artista=artistas.id) OR (alias LIKE '%$busqueda%' AND album.artista=artistas.id) LIMIT 50"
Si es una frase:
Cita:
"SELECT album.titulo as titulo, album.id as id, artistas.alias_princ as alias , MATCH ( titulo,alias ) AGAINST ( '$busqueda' IN BOOLEAN MODE ) AS Score FROM artistas,album WHERE MATCH ( titulo,alias ) AGAINST ( '$busqueda' IN BOOLEAN MODE ) AND album.artista=artistas.id ORDER BY Score DESC LIMIT 50"

Me pueden echar una mano??

GRACIAS
  #2 (permalink)  
Antiguo 29/09/2008, 06:18
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Algo no va bien

Yo utilizaría algo parecido a esto, aunque no sé qué nombre has dado a los índices fulltext.

SELECT album.titulo as titulo, album.id as id, artistas.alias_princ as alias FROM artistas INNER JOIN album ON album.artista =artistas.id WHERE album.titulo LIKE '%$busqueda%' OR artistas.alias_princ LIKE '%$busqueda%' LIMIT 50



SELECT album.titulo as titulo, album.id as id, artistas.alias_princ as alias, MATCH (titulo,alias_princ) AGAINST ( '$busqueda' IN BOOLEAN MODE ) AS Score FROM artistas INNER JOIN album ON album.artista =artistas.id WHERE MATCH ( titulo,alias_princ) AGAINST ( '$busqueda' IN BOOLEAN MODE ) ORDER BY Score DESC LIMIT 50

Pero dinos cuáles son los errores que se producen
  #3 (permalink)  
Antiguo 29/09/2008, 06:52
RJD
 
Fecha de Ingreso: enero-2006
Mensajes: 64
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Algo no va bien

Mil gracias jurena!!

Con lo de Inner Join funciona perfecto , GRACIAS

No era errores, sino que con algunas busquedas funcionaba bien y con otras no... pero ya está arreglado


THANKSSSSS
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 14:31.