Ver Mensaje Individual
  #5 (permalink)  
Antiguo 10/04/2009, 11:38
edikropo
 
Fecha de Ingreso: diciembre-2007
Mensajes: 12
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Asistente virtual con palabras claves

corregi el codigo.... ahora creo que esta bien, pero me gutaria optimizarlo.

Cita:
if ($busqueda<>'')
{
//CUENTA EL NUMERO DE PALABRAS
$palabras=explode(" ",$busqueda);
$conteo=count($palabras);
if ($conteo==1)
{
//SI SOLO HAY UNA PALABRA DE BUSQUEDA SE ESTABLECE UNA INSTRUCION CON LIKE
$query="SELECT idFaq AS idfaq, detalleFaq AS detalle FROM asistente WHERE activafaq=1 AND faqPalabraClave LIKE '%$busqueda%' LIMIT 10";
$rs = &$conn->Execute($query);
if (!$rs) exit($conn->ErrorMsg() . " - " . $query);
}
elseif ($conteo>1)
{
//busqueda de frases con mas de una palabra y un algoritmo especializado
$query="SELECT idFaq AS idfaq, detalleFaq AS detalle, MATCH(faqPalabraClave) AGAINST ('$busqueda' IN BOOLEAN MODE) AS puntaje FROM asistente WHERE MATCH (faqPalabraClave) AGAINST ('$busqueda' IN BOOLEAN MODE) AND activafaq=1 ORDER BY puntaje DESC LIMIT 10";
$rs = &$conn->Execute($query);
if (!$rs) exit($conn->ErrorMsg() . " - " . $query);

$elemento[1]=$rs->fields['puntaje']; //guardo el puntaje del primer elemento
$rs->MoveNext(); //voy al siguiente registro
$elemento[2]=$rs->fields['puntaje']; //guardo el puntaje del segundo elemento
$rs->MoveFirst(); //me regreso al primer elemneto, para que me pueda mostrar el detalle del prier elemento.

}



if($rs->RecordCount()>0)
{
if(($elemento[1] > $elemento[2]) || (($conteo==1 && $rs->RecordCount()==1)) ) //verifico una u otra condicion
{
echo $rs->fields['detalle']."<br />";
}
else
{
echo "Por favor, formule su consulta de forma clara, gracias";
}
}
else
{
echo "No poseo informacion disponible a su consulta, por favor formule su consulta por medio de los servicios ofrecidos en Alania";
}
}
else
{
echo "Por favor, formule una consulta de forma clara para poder prestarle un buen servicio, gracias";
}
Cualquier comentario.... Gracias