Foros del Web » Programando para Internet » PHP »

Realizar consulta palabra por palabra

Estas en el tema de Realizar consulta palabra por palabra en el foro de PHP en Foros del Web. Hola amigos, quisiera poder resolver una inquietud o recibir alguna pista. Tengo una tabla con un listado de nombres y lo que quiero es poder ...
  #1 (permalink)  
Antiguo 29/06/2018, 23:38
Avatar de ..::MaRcOs::..  
Fecha de Ingreso: diciembre-2006
Mensajes: 328
Antigüedad: 17 años, 4 meses
Puntos: 3
Realizar consulta palabra por palabra

Hola amigos, quisiera poder resolver una inquietud o recibir alguna pista. Tengo una tabla con un listado de nombres y lo que quiero es poder consultar esos nombres sin importar el orden en que lo escriba.

Lista:
- james rodriguez
- radamel falcao
- david ospina

que se pueda buscar por ejemplo
'rodriguez james', 'ospina david' o 'rada falcao'

muchas gracias
  #2 (permalink)  
Antiguo 30/06/2018, 14:39
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Respuesta: Realizar consulta palabra por palabra

codigo?

Puedes usar una sola consulta usando or en el where

where nombre = "..." or nombre = "..."
  #3 (permalink)  
Antiguo 01/07/2018, 11:19
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años
Puntos: 120
Respuesta: Realizar consulta palabra por palabra

Cita:
Iniciado por ..::MaRcOs::.. Ver Mensaje
Hola amigos, quisiera poder resolver una inquietud o recibir alguna pista. Tengo una tabla con un listado de nombres y lo que quiero es poder consultar esos nombres sin importar el orden en que lo escriba.

Lista:
- james rodriguez
- radamel falcao
- david ospina

que se pueda buscar por ejemplo
'rodriguez james', 'ospina david' o 'rada falcao'

muchas gracias
lo que necesitas es el "LIKE" que tienen la mayoria de base de datos SQL

Código HTML:
nombres LIKE "%pedro%"
generalmente los simbolos de % indica si puede haber o no otras letras o palabrtas
  #4 (permalink)  
Antiguo 03/07/2018, 03:07
Avatar de baldaweb  
Fecha de Ingreso: septiembre-2010
Ubicación: Barco pirata
Mensajes: 244
Antigüedad: 13 años, 6 meses
Puntos: 20
Respuesta: Realizar consulta palabra por palabra

Con el like no funciona lo que él quiere.

Esta función te puede ayudar, puedes invertir el orden de las palabras para que el porcentaje suba. Si en similar_text word3 inviertes las palabras te saldra un porcentaje de 100%.

Código PHP:
Ver original
  1. $word1 = 'radamel falcao';
  2. $word2 = 'rada falcao';
  3. $word3 = 'falcao radamel';
  4. similar_text($word1, $word2,$percent);
  5. //percent = 88%
  6. similar_text($word1, $word3,$percent);
  7. //percent = 50%

Esto es una idea y faltaría mejorarla para que el porcentaje sea alto.

Saludos.
__________________
CHOOO COOO LAAA TEEEEEEEEE
  #5 (permalink)  
Antiguo 03/07/2018, 08:35
Avatar de vb2005  
Fecha de Ingreso: noviembre-2005
Ubicación: Paderborn - Alemania
Mensajes: 566
Antigüedad: 18 años, 5 meses
Puntos: 24
Respuesta: Realizar consulta palabra por palabra

No, para resolver esto en MySQL tienes que hacer uso de FULL TEXT SEARCHING,

ahi puedes hacer algo como:

Si quieres todos los resultados con rodrigues, james pero sin falcao puedes hacer algo como:

SELECT * FROM player WHERE MATCH(name) AGAINST('+rodriguez +james -falcao' IN BOOLEAN MODE)
__________________
www.marcher.com.uy - Web personal
Nerd's Corner - Desarrollo de software a medida
  #6 (permalink)  
Antiguo 04/07/2018, 08:21
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años
Puntos: 120
Respuesta: Realizar consulta palabra por palabra

Cita:
Iniciado por vb2005 Ver Mensaje
No, para resolver esto en MySQL tienes que hacer uso de FULL TEXT SEARCHING,

ahi puedes hacer algo como:

Si quieres todos los resultados con rodrigues, james pero sin falcao puedes hacer algo como:

SELECT * FROM player WHERE MATCH(name) AGAINST('+rodriguez +james -falcao' IN BOOLEAN MODE)
a lo que yo recordaba eso no era viable en mysql INNODB
  #7 (permalink)  
Antiguo 04/07/2018, 23:00
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Realizar consulta palabra por palabra

Eso era así hasta la versión 5.5, en las versiones posteriores es posible usarlo en las tablas de tipo innodb.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: mysql
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 05:26.