Tema: Full Text
Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/01/2006, 07:15
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
En ese caso vas a tener que componer con PHP tu sentencia SQL en función de las "palabras" que pueda contener tu frase (e incluso descartanto artículos y demás palabras tal vez de menos de N caracteres (3?) ...)

Toma tu "frase" a buscar como un string y empieza a desglosarlo en palabras, usa explode() al caracter espacio (" ") para tal fin.

$frase="cinta de enrrollar";

Con una sentencia SQL unando LIKE tipo:
SELECT * FROM tabla WHERE campo LIKE '$frase'

tendrías las ocurrencias de toda la frase completa. Ya que hablas de buscar primero así y si NO se encuentra resultados .. ejecutar otras sentencias SQL por las "palabras" que componene esa frase a buscar .. cuenta los registros arrojados de la consulta:

Código PHP:
$sql="SELECT * FROM tabla WHERE campo LIKE '$frase'";
$resultado=mysql_query($sql) or die (mysql_error());
if (
mysql_num_rows($resultado) >0){
   
// presentas los resultados para la frase completa.
} else {
   
// ejecutas la sentencia SQL para las "palabras" que contenga la frase.
   // sería algo así .. No lo he probado.

$palabras=explode(" ",$frase);

// estaría bueno filtrar palabras a buscar .. por tamaño en caracteres o para eliminar artículos y demás palabras similares.

$total_palabras=count($palabras);
$x=0;
$sql_condicional='';
foreach (
$palabras as $palabra){
   
$sql_condicional .= "campo LIKE '".$palabra."'";
   if (
$total_palabras $x){
      
$sql_condicional .= " AND ";
   }
   
$x++;
}

  
$sql="SELECT * FROM tabla WHERE ".$sql_condicional;
   
// etc .. ejecuta tu consulta y muestra resultados. 


Un saludo,