Entrada

Realizar busquedas con like

Lo que nos viene es un string como vemos en la primera linea del codigo. Lo que hacemos es descomponerla y separarla por partes para hacer diferentes consultas LIKE que luego pondremos en la consulta final .

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$tags1 ="busqueda que se desea";
$trozos = array ();
$trozos = explode(" ", $tags1);
$tags_sql= "";

for($i=0;$i<count($trozos);$i++)
{
$trozos[$i] = str_replace(" ",", ",$trozos[$i]);
if ($i==0)
{
$tags_sql .= "'%".$trozos[$i]."%'";
}else
{
$tags_sql .= " or subfiltro like '%".$trozos[$i]."%'";</blockquote>
}
}
$query = "SELECT * FROM table WHERE tags like " .$tags_sql ."  ORDER BY RAND() limit 0,1";

si hacemos un echo de $query, obtendremos lo siguiente:

1
SELECT * FROM table WHERE tags like 'busqueda'  or tags like 'que' or tags like 'se'  or tags like 'desea' ORDER BY RAND() limit 0,1
Esta entrada está licenciada bajo CC BY 4.0 por el autor.