Foros del Web » Programando para Internet » PHP »

buscar palabras que coinciden en mysql

Estas en el tema de buscar palabras que coinciden en mysql en el foro de PHP en Foros del Web. saludos. tengo una duda, lo que pasa es que tengo en mi db una seria de productos los cuales si hago la búsqueda de esta ...
  #1 (permalink)  
Antiguo 22/05/2018, 08:37
 
Fecha de Ingreso: abril-2011
Mensajes: 168
Antigüedad: 13 años
Puntos: 5
buscar palabras que coinciden en mysql

saludos.

tengo una duda, lo que pasa es que tengo en mi db una seria de productos los cuales si hago la búsqueda de esta forma:
Así esta el código:

Código PHP:
Ver original
  1. $sql = "SELECT * FROM registro WHERE actividad LIKE '%$bus%'  OR ciudad LIKE '%$bus%'  OR n_empresa LIKE '%$bus%' OR P1 LIKE '%$bus%' OR p2 LIKE '%$bus%' OR p3 LIKE '%$bus%' OR p4 LIKE '%$bus%' OR p5 LIKE '%$bus%' ";

este es el resultado, lo corte a solo los p1 p2 que son los productos

Código PHP:
Ver original
  1. SELECT * FROM registro WHERE P1 LIKE '%parqueaderos lavado%' OR p2 LIKE '%parqueaderos lavado%' OR p3 LIKE '%parqueaderos lavado%' OR p4 LIKE '%parqueaderos lavado%' OR p5 LIKE '%parqueaderos lavado%'

si yo hago esta consulta en mysql no me imprime nada pero en mi db esta por separado p1= parqueaderos y p2=lavado.

mi pregunta es, como hacer para poder buscar en varias casillas y que si coinciden estas dos palabras que me las muestre.
como puedo hacer esto?
se puede hacer con mysql
  #2 (permalink)  
Antiguo 22/05/2018, 09:51
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: buscar palabras que coinciden en mysql

Te sugiero entender la diferencia entre php y mysql.

Este tema es de mysql, por lo que deberías aprender sobre el uso de like en mysql.

Ahora bien, si quieres buscar por dos palabras distintas, puedes hacer esto:

"where (p1 like '%parqueaderos%' or p1 like '%lavado%' )"

o bien, si tienes una versión más o menos reciente de mysql


"where p1 like '%parqueaderos%lavado%' )"
  #3 (permalink)  
Antiguo 22/05/2018, 11:16
 
Fecha de Ingreso: abril-2011
Mensajes: 168
Antigüedad: 13 años
Puntos: 5
Respuesta: buscar palabras que coinciden en mysql

Cita:
Iniciado por ocp001a Ver Mensaje
Te sugiero entender la diferencia entre php y mysql.

Este tema es de mysql, por lo que deberías aprender sobre el uso de like en mysql.

Ahora bien, si quieres buscar por dos palabras distintas, puedes hacer esto:

"where (p1 like '%parqueaderos%' or p1 like '%lavado%' )"

o bien, si tienes una versión más o menos reciente de mysql


"where p1 like '%parqueaderos%lavado%' )"
saludos y muchas gracias por responder.
yo se diferenciar entre php y mysql por eso pongo la consulta del resultado de la consola y el código que hago en php.

por otro lado si tu me dices que haga esto
Código PHP:
Ver original
  1. "where (p1 like '%parqueaderos%' or p1 like '%lavado%' )"

pues yo lo tengo así.
Código PHP:
Ver original
  1. $sql = "SELECT * FROM registro WHERE actividad LIKE '%$bus%'  OR ciudad LIKE '%$bus%'  OR n_empresa LIKE '%$bus%' OR P1 LIKE '%$bus%' OR p2 LIKE '%$bus%' OR p3 LIKE '%$bus%' OR p4 LIKE '%$bus%' OR p5 LIKE '%$bus%' ";

por ende no me esta funcionando como debería ya que LIKE debe tomar los valores que traigo en la variable $bus pero no lo hace.

ejemplo:
si escribo en la busqueda (osea en el input) la palabra parqueadero, el sistema si la busca y la imprime pero si busco parqueadero lavado la cual cada una de las dos palabras estan en diferente casilla en mi bd el sistema no me imprime.
no se si me haya hecho entender.
  #4 (permalink)  
Antiguo 22/05/2018, 11:44
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: buscar palabras que coinciden en mysql

Cita:
Iniciado por dairo65 Ver Mensaje
[...] si escribo en la busqueda (osea en el input) la palabra parqueadero, el sistema si la busca y la imprime pero si busco parqueadero lavado la cual cada una de las dos palabras estan en diferente casilla en mi bd el sistema no me imprime.
no se si me haya hecho entender.
En ese caso, tendrás que separar la cadena en partes a partir de los espacios en blanco, para lo cual puedes usar la función explode(). Esto formará un arreglo en donde cada elemento será cada una de las palabras separadas por los espacios. Por ejemplo:

Código PHP:
Ver original
  1. $cadena = 'Hola Mundo';
  2. $arreglo = explode(' ', $cadena);
  3.  
  4. echo $arreglo[0]; //Hola
  5. echo $arreglo[1]; //Mundo

Sabiendo esto, solo necesitarías acceder a cada palabra mediante los índices correspondientes en el arreglo resultante y, de esta manera, podrás utilizarlas en la consulta.

Código PHP:
Ver original
  1. $sql = "SELECT campos FROM tabla WHERE campoX LIKE '%{$arreglo[0]}%' OR campoX LIKE '%{$arreglo[1]}%'";

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: mysql, palabras, select, sql
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 01:45.