188 lines
8.7 KiB
PHP
188 lines
8.7 KiB
PHP
<?
|
|
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']='';
|
|
?>
|
|
<form action="./?action=rechercher" method="POST">
|
|
<input type="hidden" name="submitted" value="1">
|
|
<table>
|
|
<tr><td><i>Informations sur la personne</i></td><td> </td></tr>
|
|
<tr><td><b>NOM *</b></td><td><input type="text" name="nom" value="<?=$_REQUEST['nom']?>"></td></tr>
|
|
<tr><td>Prénom *</td><td><input type="text" name="prenom" value="<?=$_REQUEST['prenom']?>"></td></tr>
|
|
<tr><td>Département ou Code Postal de résidence *</td><td><input type="text" name="codePostal" value="<?=$_REQUEST['codePostal']?>"></td></tr>
|
|
<tr><td>Civilité</td><td><input type="radio" name="civilite" value="Mlle"> Mlle
|
|
<input type="radio" name="civilite" value="Mme"> Mme
|
|
<input type="radio" name="civilite" value="M"> M</td></tr>
|
|
<tr><td>Date de Naissance *</td><td><input type="text" name="naissJJ" size="3" maxlength="2"> / <input type="text" name="naissMM" size="3" maxlength="2"> / <input type="text" name="naissAA" size="5" maxlength="4"></td></tr>
|
|
<tr><td>Ville de Naissance</td><td><input type="text" name="naissVille"></td></tr>
|
|
<tr><td>Département de Naissance</td><td><input type="text" name="naissDept"></td></tr>
|
|
<tr><td>Pays de Naissance</td><td><input type="text" name="naissPays"></td></tr>
|
|
<tr><td>Adresse de résidence *</td><td><input type="text" name="adresse"></td></tr>
|
|
<tr><td>Ville de résidence *</td><td><input type="text" name="adresseVille"></td></tr>
|
|
<tr><td>Montant du crédit demandé *</td><td><input type="text" name="creditDemande"></td></tr>
|
|
<tr><td>SIREN si entrepreneur individuel</td><td><input type="text" name="siren"></td></tr>
|
|
<tr><td>RIB</td><td><input type="text" name="siren"></td></tr>
|
|
<tr><td>Téléphone Domicile</td><td><input type="text" name="telephoneMaison"> <i>Liste rouge <input type="radio" name="listeRouge" value="Oui"> Oui <input type="radio" name="listeRouge" value="Non"> Non</td></tr>
|
|
<tr><td>Téléphone Professionel</td><td><input type="text" name="telephonePro"></td></tr>
|
|
<tr><td>Téléphone Portable</td><td><input type="text" name="telephonePort"></td></tr>
|
|
<tr><td><i>Informations complémentaires</i></td><td> </td></tr>
|
|
<tr><td>Nom de l'employeur</td><td><input type="text" name="employeurNom"></td></tr>
|
|
<tr><td>Adresse de l'employeur</td><td><input type="text" name="employeurAdresse"></td></tr>
|
|
<tr><td>Code Postal de l'employeur</td><td><input type="text" name="employeurCP"></td></tr>
|
|
<tr><td>Ville de l'employeur</td><td><input type="text" name="employeurVille"></td></tr>
|
|
<tr><td> </td><td> </td></tr>
|
|
<tr><td>Type de recherche</td><td><input type="radio" <?if ($_REQUEST['typeRecherche']=='exacte') echo 'CHECKED';?> name="typeRecherche" value="exacte">Exacte <input type="radio" <?if ($_REQUEST['typeRecherche']=='approx') echo 'CHECKED';?> name="typeRecherche" value="approx">Approchante</td></tr>
|
|
<tr><td>Nombre de résultats</td><td><select name="nbRep"><option value="25">25</option><option value="50">50</option><option value="100">100</option><option value="200">200</option></select></td></tr>
|
|
</table>
|
|
<input type="submit" value="Valider"> <input type="reset" value="RAZ">
|
|
</form>
|
|
<?php
|
|
include_once('/var/www/includes/mysql.php');
|
|
$con = mysql_pconnect('localhost', 'root', 'bzh4231*');
|
|
if (!($con === false)) {
|
|
if (mysql_select_db('npaipp', $con) === false)
|
|
die('Could not select database: ' . mysql_error());
|
|
}
|
|
|
|
require ( "sphinxapi.php" );
|
|
|
|
//die ( "usage: php -f test.php [--any] <word [word [word [...]]]> [--group <group>] [-p <port>] [-i <index>]\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.<br/>";
|
|
print "<h3>Query stats</h3><ul>";
|
|
if ( is_array($res["words"]) )
|
|
foreach ( $res["words"] as $word => $info )
|
|
print "<li>'$word' found $info[hits] times in $info[docs] documents</li>";
|
|
print "</ul>";
|
|
|
|
if ( is_array($res["matches"]) )
|
|
{
|
|
$n = 1;
|
|
print "<h3>Reponses :</h3><ul>";
|
|
foreach ( $res["matches"] as $doc => $docinfo )
|
|
{
|
|
// print "<li>$n. doc_id=$doc, weight=$docinfo[weight]<br/>";
|
|
// foreach ( $res["attrs"] as $attrname => $attrtype )
|
|
// {
|
|
$info=mysql_select('particuliers', 'Nom, Adresse, CodePostal, Ville, Tel, Fax', "id=$doc");
|
|
$personne=$info[0];
|
|
echo '<li><i>'. $n .'.</i> '. $personne['Nom'] .' ('. $docinfo[weight] .' %)<br/>';
|
|
echo $personne['Adresse'] .'<br/>';
|
|
echo $personne['CodePostal'] .' '. $personne['Ville'] .'<br/>';
|
|
if ($personne['Tel']<>'') echo 'Tél : '.$personne['Tel'].'<br/>';
|
|
if ($personne['Fax']<>'') echo 'Fax : '.$personne['Fax'].'<br/>';
|
|
echo "</li>\n";
|
|
$n++;
|
|
|
|
/* $value = $docinfo["attrs"][$attrname];
|
|
if ( $attrtype==SPH_ATTR_TIMESTAMP )
|
|
$value = date ( "Y-m-d H:i:s", $value );
|
|
print ", $attrname=$value";
|
|
}
|
|
print "</li>";*/
|
|
//$n++;
|
|
}
|
|
print "</ul>";
|
|
}
|
|
echo '<!--';
|
|
print_r($res);
|
|
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
|
|
*/
|
|
|
|
}
|
|
}
|
|
|
|
?>
|