![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
10/04/2009, 11:38
|
| | Fecha de Ingreso: diciembre-2007
Mensajes: 12
Antigüedad: 17 años, 2 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 |