PHP - Buscar en Mysql mas de dos palabras ingresadas en campo de busqueda

 
Vista:

Buscar en Mysql mas de dos palabras ingresadas en campo de busqueda

Publicado por Alejandro (2 intervenciones) el 16/09/2019 00:09:06
Hola a todos, soy nuevo en este tema del desarrollo y he estado intentando hacer una búsqueda en tiempo real, de una tabla en mysql. el problema que tengo es que: el USUARIO quiere buscar mas de dos palabras en esta base de datos en distintas columnas y a medida que vaya ingresando mas palabras acertadas, mas exacta sera la búsqueda.cuando el usuario busca solo una palabra, encuentra todos los resultados con ese filtro, pero si digita dos o mas palabras no encuentra nada. he intentado hacerlo por FULLTEXT pero debo especificar en la sentencia, la palabra que el USUARIO debería busca. Relaciono parte del codigo con FULLTEXT y con LIKE.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<pre><code>
//FULLTEXT
 
$query="SELECT * FROM clientesc2019 ORDER BY Nombres";
 
/*LO QUE OCURRE AL TECLEAR SOBRE EL INPUT DE BUSQUEDA */
if(isset($_POST['clientes1']))
{
    $q=$conexion->real_escape_string($_POST['clientes1']);
    $query="SELECT * FROM clientesc2019 WHERE

    MATCH (Nombres,Apellidos) AGAINST 'Alejandro'";
}
<pre><code>
 
 
<pre><code>
/*LIKE*/
 
$query="SELECT * FROM clientesc2019 ORDER BY Nombres";
 
/* LO QUE OCURRE AL TECLEAR SOBRE EL INPUT DE BUSQUEDA */
if(isset($_POST['clientes1']))
{
    $q=$conexion->real_escape_string($_POST['clientes1']);
    $query="SELECT * FROM clientesc2019 WHERE

    id LIKE '%".$q."%' OR
    Nombres LIKE '%".$q."%' OR
    Apellidos LIKE '%".$q."%'";
}
<pre><code>




quiero que cuando por ejemplo el USUARIO escriba en la barra de busqueda, Alejandro Martinez. encuentre todos los Alejandro Martinez. entre mas palabras acertadas escriba la busqueda sea mas exacta

Agradezco su ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Joan
Val: 180
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Buscar en Mysql mas de dos palabras ingresadas en campo de busqueda

Publicado por Joan (21 intervenciones) el 16/09/2019 11:42:20
Hola Alejandro, con las busquedas fulltext, puedes poner una palabra o una frase, Mysql buscara los mejores resultados.

1
$query="SELECT * FROM clientesc2019 WHERE MATCH (Nombres,Apellidos) AGAINST 'Alejandro Martinez'";
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Buscar en Mysql mas de dos palabras ingresadas en campo de busqueda

Publicado por alejandro (2 intervenciones) el 16/09/2019 14:51:53
Hola, gracias por responder.

Si eso he leído y he intentado. Pero no se cómo hacer para que el código busque lo que el USUARIO digita.

En este momento funciona, el USUARIO digita un parámetro y lo encuentran si coincide con la parte de AGAINST ‘ ‘ pero yo no quiero asignarle parámetros fijos en AGAINST ‘ ‘

Con LIKE si busca en toda la tabla pero con FULL text debo asignar antes un parámetro de búsqueda en el codigo, más especificacamente en la parte de AGAINST ‘ ‘

Cómo lo explico en la parte de arriba con el ejemplo de FULLTEXT
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Buscar en Mysql mas de dos palabras ingresadas en campo de busqueda

Publicado por joel (1269 intervenciones) el 16/09/2019 15:43:01
Hola Alejandro, creo que te estas liando...

Cuando defines el indice FULLTEXT, indicas los campos donde realizar la búsqueda y luego la cadena que indiques, busca dentro de los campos definidos en el FULLTEXT, que son los campos que indicas en el MATCH
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar