Hola!
Estoy atascado en un problema, tras obtener los resultados de búsqueda con sql y más de un término de búsqueda, me da varios resultados.
El problema principal es que si, por ejemplo buscamos "El árbol verde" los resultados que nos puede dar son aquellos que contienen el, árbol y verde. En un principio bien, el problema es que, al ordenarlos por id no tiene otra referencia.
Me gustaría poder ordenarlos por veces que se repiten los términos, tengo este code, es un poco malo ya que he estado probando mucho sobre él:
Código PHP:
Ver original$termino='valor1 valor2 valor3';
$search_text=$termino;
$search_text=ltrim($search_text); $search_text=rtrim($search_text);
$kt=split(" ",$search_text);//Breaking the string to array of words // Now let us generate the sql
$ver_lista_num=0;
if($val<>" " and
strlen($val) > 0){$q .= " nombre like '%$val%' or ";} $ver[$ver_lista_num] = $val;
$ver_lista_num++;
}// end of while
$while_v=0;
while($vtotal>$while_v){
$n_ver=$ver[$while_v];
$cname= $ver_centros['nombre'];
$ccode= $ver_centros['ID'];
$vver[$ccode][$cname]+=1;
echo $cname.' '.$vver[$ccode][$cname].'<br>';
}
$while_v++;
}
La cosa es que el code, por ejemplo me da resultados como: El árbol verde 3.
Ese 3 son el número de palabras escritas que dentro de la cadena "el árbol verde" coinciden.
Lo que me falta es la parte de ordenar según coincidencias, probé con array pero si más de una tienen las mismas repeticiones de palabras, las descarta y solo deja 1.
Espero que puedan ayudarme