Foros del Web » Programando para Internet » PHP »

Problema con regexp

Estas en el tema de Problema con regexp en el foro de PHP en Foros del Web. hola.. que tal ..espero que me puedan ayudar tengo un problema.. lo que pasa es que quiero realizar una busqueda en una tabla almacenada en ...
  #1 (permalink)  
Antiguo 31/05/2009, 14:43
 
Fecha de Ingreso: mayo-2009
Mensajes: 3
Antigüedad: 15 años, 5 meses
Puntos: 0
Problema con regexp

hola.. que tal ..espero que me puedan ayudar tengo un problema.. lo que pasa es que quiero realizar una busqueda en una tabla almacenada en msysql llamada producto y weno al momento de ingresar lo que quiero buscar por ejmplo nada mas ingreso"" kst """ .. me pueda mostrar los productos que te tenga esas letras--.. sin importar si estan juntas o no..


tengo este linea


$sql="select * from producto where NOMBRE regexp '[$b]{3,}'";



pero nada mas hace la busqueda yamuestran los productos pero solo mustra si estan junto lo que ingrese en la busqueda

ejemplo

ingreso tak
me devuelve takis, takis salsa brava


pero si ingreso tsr no me devuelve nada

y tendria que devolverve takis salsa brava tiene esas letras pero no lo hace


y ese es mi gran problema
  #2 (permalink)  
Antiguo 31/05/2009, 18:57
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Problema con regexp

Por el momento te puedo brindar un query que busca las tres palabras pero juntas

SELECT * FROM producto WHERE NOMBRE LIKE '%kst%';
  #3 (permalink)  
Antiguo 31/05/2009, 19:02
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años, 7 meses
Puntos: 19
Respuesta: Problema con regexp

y si pruebas asi:

SELECT * FROM productos WHERE NOMBRE LIKE '%k%' AND NOMBRE LIKE '%s%' AND NOMBRE LIKE '%t%';
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #4 (permalink)  
Antiguo 31/05/2009, 19:04
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Problema con regexp

Pero acuerdate que es en un solo campo tendria que dividirlo antes con un codigo y para mi entender debe ser con OR porque puede ser cualquiera de las tres
  #5 (permalink)  
Antiguo 31/05/2009, 19:10
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años, 7 meses
Puntos: 19
Respuesta: Problema con regexp

no deben de ser las tres, si les pones OR solo puede que aparezca una y esa tome y no es lo que quiere, quiere que sean las tres
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #6 (permalink)  
Antiguo 31/05/2009, 20:26
 
Fecha de Ingreso: mayo-2009
Mensajes: 3
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Problema con regexp

mmmmmmmmm ya intente.. con todas pero no.. no. sale..

$sql="select * from producto where NOMBRE regexp '[$b]{3,}'";



$b es donde guardo la busqueda

regexp '[$b]' si lo pongo sin {3,} hace la busqueda pero si ingreso " ab "" me busca lo productos que tengan por lo menos una """ a""" o por lomenos una "" b""" sin importar el lugar en dodne se encuente ...

pero no hayo como validar para q sin introdusko """ abcd """" me devuelva productos que tengan por lo menos 3 letras de la busqueda sin importar el lugar donde esten y weno si tienen 2 o menos palabras de la busqueda pues que no las muestre
  #7 (permalink)  
Antiguo 31/05/2009, 21:45
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años, 7 meses
Puntos: 19
Respuesta: Problema con regexp

puedes dividir tu cadena de busqueda por caractery asi hacer una busqueda por cada letras con AND algo asi:

SELECT * FROM productos WHERE NOMBRE LIKE '%k%' AND NOMBRE LIKE '%s%' AND NOMBRE LIKE '%t%';

obviamente va a tener mas o menos and dependiendo de los caracteres de la cadena
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
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 12:59.