Foros del Web » Programando para Internet » PHP »

buscador php

Estas en el tema de buscador php en el foro de PHP en Foros del Web. Hola! tengo el siguiente problema con una buscador. Por ejemplo: si realizo la búsqueda: autor: Neruda , tema: Poesia, me aparece el resultado correcto excepto ...
  #1 (permalink)  
Antiguo 05/08/2010, 04:35
 
Fecha de Ingreso: junio-2008
Mensajes: 291
Antigüedad: 15 años, 10 meses
Puntos: 9
buscador php

Hola! tengo el siguiente problema con una buscador. Por ejemplo: si realizo la búsqueda: autor: Neruda , tema: Poesia, me aparece el resultado correcto excepto que también me muestra todos los libros de poesía que no son de ese autor. He probado mil cosas y nada de nada. Se os ocurre algo?

Código PHP:
$clave $_GET['clave'];
if (
$clave<>''){  


 
   
$trozos=explode(" ",$clave); 
   
$numero=count($trozos); 
  if (
$numero==1)
   { 
  
$buscar="SELECT * FROM $db WHERE NOMB LIKE '%$clave%' OR AUTOR LIKE '%$clave%' OR TEMA LIKE '%$clave%' OR COLECCION LIKE '%$clave%' OR EDITORIAL LIKE '%$clave%' OR LIBRE LIKE '%$clave%' OR OBSERVA LIKE '%$clave%' order by $ordenarpor $orden"
  }
  elseif (
$numero>1)
   { 
 
   
$buscar"SELECT * , MATCH (NOMB, AUTOR, TEMA, COLECCION, EDITORIAL, LIBRE, OBSERVA) AGAINST ('$clave'IN BOOLEAN MODE) AS Score FROM $db WHERE MATCH (NOMB, AUTOR, TEMA, COLECCION, EDITORIAL, LIBRE, OBSERVA) AGAINST ('$clave' IN
BOOLEAN MODE) ORDER BY Score DESC "
;
}

}elseif (!
$clave<>''){ 
 
$buscar "SELECT * FROM $db WHERE NOMB LIKE '%$NOMB%' AND AUTOR LIKE '%$AUTOR%' AND TEMA LIKE '%$TEMA%'  AND EDITORIAL LIKE '%$EDITORIAL%'  OR TEMA LIKE '%$TEMA%' AND (AUTOR LIKE '%$AUTOR%' AND EDITORIAL LIKE '%$EDITORIAL%' AND NOMB LIKE '%$NOMB%') OR NOMB LIKE '%$NOMB%' AND (AUTOR LIKE '%$AUTOR%' AND EDITORIAL LIKE '%$EDITORIAL%' AND TEMA LIKE '%$TEMA%') order by $ordenarpor $orden";
 } 
  #2 (permalink)  
Antiguo 05/08/2010, 05:27
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: buscador php

es debido a la lógica de tu búsqueda, buscas: autor like X OR tema like Y, por eso te aparecen todos los temas que coincidan con "Y" O los autores que coincidan con "X", si colocas AND estarías cerrando el cerco de los resultados a autor X y tema Y
  #3 (permalink)  
Antiguo 05/08/2010, 05:46
 
Fecha de Ingreso: junio-2008
Mensajes: 291
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: buscador php

Gracias por tu ayuda. Ahora me muestra todos los resultados de mi db :(
  #4 (permalink)  
Antiguo 05/08/2010, 06:15
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: buscador php

postea el sql, porque si usas AND es imposible que te salga todo
  #5 (permalink)  
Antiguo 05/08/2010, 06:50
 
Fecha de Ingreso: junio-2008
Mensajes: 291
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: buscador php

hola, aqui va:

Estructura de tabla para la tabla `vells`
--

CREATE TABLE IF NOT EXISTS `vells` (
`CODI` varchar(50) NOT NULL DEFAULT '',
`NOMB` text,
`AUTOR` text,
`TEMA` varchar(200) DEFAULT NULL,
`COLECCION` varchar(200) DEFAULT NULL,
`PVP` float DEFAULT NULL,
`EDITORIAL` varchar(200) DEFAULT NULL,
`LIBRE` varchar(200) DEFAULT NULL,
`OBSERVA` text,
`clave` varchar(40) NOT NULL,
`imagen` varchar(200) NOT NULL DEFAULT '',
`Score` varchar(200) NOT NULL DEFAULT '',
FULLTEXT KEY `NOMB` (`NOMB`,`AUTOR`,`TEMA`,`COLECCION`,`EDITORIAL`,`LI BRE`,`OBSERVA`),
FULLTEXT KEY `clave` (`clave`,`NOMB`,`AUTOR`,`TEMA`,`COLECCION`,`EDITOR IAL`,`LIBRE`,`OBSERVA`),

FULLTEXT KEY `CODI` (`CODI`,`NOMB`,`AUTOR`,`TEMA`,`COLECCION`,`EDITORI AL`,`LIBRE`,`OBSERVA`,`clave`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

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 10:29.