if (!isset($_REQUEST['typeRecherche']) || ( $_REQUEST['typeRecherche']<>'exacte' &&
$_REQUEST['typeRecherche']<>'approx') )
$_REQUEST['typeRecherche']='exacte';
if (!isset($_REQUEST['nbRep']) || $_REQUEST['nbRep']<25 || $_REQUEST['nbRep']>200 )
$_REQUEST['nbRep']=25;
if (!isset($_REQUEST['nom'])) $_REQUEST['nom']='';
if (!isset($_REQUEST['prenom'])) $_REQUEST['prenom']='';
if (!isset($_REQUEST['codePostal'])) $_REQUEST['codePostal']='';
?>
[--group ] [-p ] [-i ]\n" );
$q = $_REQUEST['nom'].' '.$_REQUEST['prenom'];
$any = false; // si false $index='xxx'
$port = 3312;
if ($_REQUEST['typeRecherche']=='exacte')
$index="annuaire_pp";
else
$index="annuaire_pp_shx";
$nbRep=$_REQUEST['nbRep'];
////////////
// do query
////////////
$cl = new SphinxClient ();
$cl->SetServer ( "localhost", $port );
$cl->SetLimits (0, $nbRep);
$cl->SetWeights ( array ( 100, 1 ) );
$cl->SetMatchMode ( $any ? SPH_MATCH_ANY : SPH_MATCH_ALL );
if ( isset($_REQUEST['codePostal']) && $_REQUEST['codePostal']<>'' ) {
$tailleCP=strlen($_REQUEST['codePostal']);
if ($tailleCP>1 && $tailleCP<4) $cl->SetFilter("departement", array(0=>$_REQUEST['codePostal']));
elseif ($tailleCP==5) $cl->SetFilter("codepostal", array(0=>$_REQUEST['codePostal']));
}
if ( isset($_REQUEST['telephoneMaison']) && $_REQUEST['telephoneMaison']<>'' ) {
$cl->SetFilter("tel", array(0=>$_REQUEST['telephoneMaison']));
}
$res = $cl->Query ( $q, $index );
////////////////
// print me out
////////////////
if ( $res===false )
{
print "Query failed: " . $cl->GetLastError() . ".\n";
} else
{
if ( $cl->GetLastWarning() )
print "WARNING: " . $cl->GetLastWarning() . "\n\n";
print "Query '$q' retrieved $res[total] of $res[total_found] matches in $res[time] sec.
";
print "Query stats
";
if ( is_array($res["words"]) )
foreach ( $res["words"] as $word => $info )
print "- '$word' found $info[hits] times in $info[docs] documents
";
print "
";
if ( is_array($res["matches"]) )
{
$n = 1;
print "Reponses :
";
foreach ( $res["matches"] as $doc => $docinfo )
{
// print "- $n. doc_id=$doc, weight=$docinfo[weight]
";
// foreach ( $res["attrs"] as $attrname => $attrtype )
// {
$info=mysql_select('particuliers', 'Nom, Adresse, CodePostal, Ville, Tel, Fax', "id=$doc");
$personne=$info[0];
echo ' - '. $n .'. '. $personne['Nom'] .' ('. $docinfo[weight] .' %)
';
echo $personne['Adresse'] .'
';
echo $personne['CodePostal'] .' '. $personne['Ville'] .'
';
if ($personne['Tel']<>'') echo 'Tél : '.$personne['Tel'].'
';
if ($personne['Fax']<>'') echo 'Fax : '.$personne['Fax'].'
';
echo " \n";
$n++;
/* $value = $docinfo["attrs"][$attrname];
if ( $attrtype==SPH_ATTR_TIMESTAMP )
$value = date ( "Y-m-d H:i:s", $value );
print ", $attrname=$value";
}
print "";*/
//$n++;
}
print "
";
}
echo '';
if ($_POST['submitted']) {
print_r($_POST);
/* Actions à effectuer :
// 1. Vérification de l'existance du NOM, Prénom et Adresse dans Annuaire (/30 points)
1.1. Si NOM+Prénom à l'adresse ==> OK 30 points
1.2. Si NOM sans prénom à l'adresse ==> OK 25 points
1.3. Si quelqu'un dans annuaire à l'adresse 10 points
1.4. Si pas d'adresse 0 point
// Si 1.2 ==> 2
// Si 1.3 ==> 2 + 3
// Si 1.4 ==> 2 + 3 + 4
// 2. Vérifier si le prénom existe dans la table des prénoms (/ 3 points)
2.1. Si le prénom existe OK 2 points
2.2. Sinon valeur approchante 1 point
2.3. Sinon ?????????? 0 point
// 3. Vérifier si le nom existe dans la table des noms (/ 3 points)
1.1. Si le nom existe OK 2 points
1.2. Sinon valeur approchante 1 point
1.3. Sinon 0 point
// 4. Recherche de l'existance de l'adresse / ville (/ 5 points)
2.1. Si adresse complète existe 5 points
2.2. Si adresse sans n° 3 points
2.3. Si approchant 2 points
2.4. Si ville sans l'adresse 0 point
//10. Vérifier si le prénom est logique avec les l'age moyen des personnes portant ce prénom (/ 3 points)
2.4.1. Si logique OK 2 points
2.4.2. Si approchant 1 point
2.4.3. Sinon 0 point
3.3.1 Vérification dans le pages blanches
// 3. Si un téléphone est communiqué et qu'absence de liste rouge : (30 points)
3.1. Vérifier la concordance NOM, Prénom, Adresse, Téléphonesi OK 30 point
Enregistrer chaque requête
et les informations communqiuées par le client
*/
}
}
?>