Foros del Web » Programando para Internet » PHP »

buscador con php y mysql

Estas en el tema de buscador con php y mysql en el foro de PHP en Foros del Web. Bueno ya se que en el foro hay miles temas como este pero asi y todo no logre hacer funcionar correctamente mi buscador. Es un ...
  #1 (permalink)  
Antiguo 11/03/2008, 22:42
 
Fecha de Ingreso: febrero-2008
Mensajes: 10
Antigüedad: 11 años, 10 meses
Puntos: 0
buscador con php y mysql

Bueno ya se que en el foro hay miles temas como este pero asi y todo no logre hacer funcionar correctamente mi buscador.
Es un formulario en donde hay una caja de texto donde se introducen las palabras clave que se buscan en 2 campos de una tabla.
Hasta ahora lo que he logrado es hacer que busque esas todas las palabras ingresadas en la caja de texto pero tambien me devuelve valores con contiene una sola palabra de todas las infresadas cosa que no quiero.
Como estoy usando match y against en boolean mode para realizar la busqueda correctamente tengo que ingresar un + delante de cada palabra, pero como es un buscador que voy a poner en mi sitio web no le puedo explicar eso a cada visitante por lo que estoy buscando la forma para que me reemplace cada espacio en blanco por un +. O cualquier otra solucion, esa fue la que se me ocurrio. Espero que se haya entendido, cualquier cosa pregunten. Saludos.
  #2 (permalink)  
Antiguo 12/03/2008, 03:44
 
Fecha de Ingreso: septiembre-2003
Mensajes: 96
Antigüedad: 16 años, 4 meses
Puntos: 3
Re: buscador con php y mysql

Para reemplazar un espacio en blanc (o varios) por un '+' es tan simple como:

$searchValue = preg_replace("/(.+)(\s+)(.+)/", "$1+$2", $keywords);

o bien:

$searchValue = preg_replace("/(.+)( +)(.+)/", "$1+$2", $keywords);
  #3 (permalink)  
Antiguo 12/03/2008, 08:24
 
Fecha de Ingreso: febrero-2008
Mensajes: 10
Antigüedad: 11 años, 10 meses
Puntos: 0
Re: buscador con php y mysql

Muchas gracias por la respuesta, lo eh implementado pro igual no me dio resultado. Les dejo el código a ver si alguno me puede dar una mano.

Código PHP:
<?php
$sql 
"SELECT * FROM articulos, marcas WHERE articulos.id_marca = marcas.id ";
if (isset(
$_POST['txtBusqueda'])) {
    
$sql .= "AND MATCH(articulo, descripcion) AGAINST ('$txtBusqueda' IN BOOLEAN MODE)";
    if (
intval($_POST['selMarca']) > 0) {
        
$sql .= " AND articulos.id_marca = '" intval($_POST['selMarca']) . "'"
    }
}
Les repito asi como esta me funciona pero si escribo mas de 1 palabra en la caja de texto me busca tambien aquellos que tienen 1 de las 2 palabras cosa que no quiero.
Saludos
  #4 (permalink)  
Antiguo 12/03/2008, 09:13
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 14 años, 5 meses
Puntos: 638
Re: buscador con php y mysql

hola, a ver si entiendo bien, lo que quieres es que te busque por frases... entonces me parece que deberias usar LIKE (a mi no me gusta).

por otro lado,
Cita:
publicado originalmente por MySQL 5.0 Reference Manual:
Un signo más indica que esta palabra debe estar presente en cada registro que se retorne.
si pones un signo mas (+) delante de cada palabra, te devolvera cada registro que contenga esa palabra.

este link te puede interesar:
http://dev.mysql.com/doc/refman/5.0/...t-boolean.html (donde habla de los operadores)

saludos y suerte
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #5 (permalink)  
Antiguo 12/03/2008, 09:17
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 11 años, 10 meses
Puntos: 52
Re: buscador con php y mysql

prueba haciendo un implode


Código PHP:

string implode 
string $elemento_union , array $trozos 
Mirate este Link
  #6 (permalink)  
Antiguo 12/03/2008, 12:03
 
Fecha de Ingreso: febrero-2008
Mensajes: 10
Antigüedad: 11 años, 10 meses
Puntos: 0
Re: buscador con php y mysql

Gracias ahi estuve mirando lo que me pasaron y ya se como solucionarlo. Para que funcione correctamente delante de cada palabra tengo que agregar un + pero tengo que conservar los espacion entre palabra y palabra. Osea cuando alguien escribe "palabra1 palabra2" tengo que reemplazarlo por "+palabra1 palabra2" no me sirve reemplazar los espacios por +. a alguno se lo ocure como puedo hacer eso??
Gracias y saludos.

Última edición por ataberner; 12/03/2008 a las 12:09
  #7 (permalink)  
Antiguo 14/03/2008, 06:50
 
Fecha de Ingreso: septiembre-2003
Mensajes: 96
Antigüedad: 16 años, 4 meses
Puntos: 3
Re: buscador con php y mysql

Me líe con el simbolito de la expresión regular....
  #8 (permalink)  
Antiguo 16/03/2008, 22:05
 
Fecha de Ingreso: febrero-2008
Mensajes: 10
Antigüedad: 11 años, 10 meses
Puntos: 0
Re: buscador con php y mysql

Cita:
Iniciado por kaS_aPPeaL Ver Mensaje
Me líe con el simbolito de la expresión regular....
disculpa no entiendo bien que fue lo que quisiste decir
  #9 (permalink)  
Antiguo 17/03/2008, 03:10
 
Fecha de Ingreso: septiembre-2003
Mensajes: 96
Antigüedad: 16 años, 4 meses
Puntos: 3
Re: buscador con php y mysql

Cita:
Iniciado por ataberner Ver Mensaje
disculpa no entiendo bien que fue lo que quisiste decir
Era respondiendo a lo que decía rogertm
  #10 (permalink)  
Antiguo 17/03/2008, 04:25
 
Fecha de Ingreso: febrero-2008
Ubicación: Bergara
Mensajes: 12
Antigüedad: 11 años, 11 meses
Puntos: 0
Re: buscador con php y mysql

Hola!!
No se si te ayudará pero yo un día encontré un manual de como hacer busquedas por una o más palabras, te paso el enlace
http://www.desarrolloweb.com/articulos/2087.php
Espero que te valga.

Un beso

Irene
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 15:05.