<?
/* Recherche de codes postaux français. Script PHP/FI 2.0 (1998-bea@altern.org) */
/* Tant que le formulaire de recherche n'a pas été envoyé, on l'affiche */
if ($valeur == "");
echo "<CENTER><FONT SIZE=5 COLOR=\"#004080\"><B>Recherche de codes postaux français.</B></FONT>";
echo "<HR NOSHADE>";
echo "<form method=\"post\" action=\"cpfr.html\">";
echo " <table width=40% border=5 cellpadding=2 cellspacing=0 BGCOLOR=\"#38B1C7\">";
echo " <tr><td align=center>";
echo "<font size=+2>Question</font><br><HR NOSHADE>";
/* Juste quelques petits commentaires pour aider l'utilisateur dans sa recherche */
echo "<FONT SIZE=2>La recherche ne tient pas compte des majuscules/minuscules, ";
echo "ni des caractères accentués.";
echo " <BR>Vous pouvez ne taper qu'une partie du mot ";
echo "recherché (ex : si vous cherchez \"ch\", vous obtiendrez aussi ";
echo "bien \"Cholet\" que \"La Rochelle\" ou \"Chambery\" etc.)</FONT></td></tr>";
echo "<TR>";
echo "<TD align=center>";
/* Récupération de l'info à rechercher */
echo " <input name=valeur type=text size=25 value=\"\">";
echo "</td></tr>";
echo "</table>";
echo "<p>";
echo "<input TYPE=submit NAME=\"envoi\" VALUE=\"Rechercher\">";
echo "<p>";
echo "</form>";
else; /* Si la variable $valeur n'est pas vide, on procède à la recherche */
/* Définition de la requête, soit la ville contient la chaîne recherchée, soit le code postal commence par la chaîne recherchée. */
/* Les signes "%" servent à remplacer n'importe quel morceau de chaîne de caractères. Si la valeur recherchée est 49, */
/* la requête deviendra */
/* $requete = ville like '%49%' or cp like '49%' */
/* Il n'y a aucun nom de ville qui contienne '49', donc tous les codes postaux commençant par 49 seront affichés */
/* On commence par supprimer tous les caractères accentués */
/* qui seraient présents dans le critère de recherche */
$valeur = ereg_replace("[ÀÁÂÃÄÅàáâãäå]","a",$valeur);
$valeur = ereg_replace("[Çç]","c",$valeur);
$valeur = ereg_replace("[Ññ]","n",$valeur);
$valeur = ereg_replace("[ÈÉÊËèéêë]","e",$valeur);
$valeur = ereg_replace("[ÒÓÔÕÖØòóôõöø]","o",$valeur);
$valeur = ereg_replace("[ÌÍÎÏìíîï]","i",$valeur);
$valeur = ereg_replace("[ÙÚÛÜùúûü]","u",$valeur);
/* La requête est faite sur le champ "ville2" qui est une copie */
/* de "ville" mais sans les accents */
$requete = "ville2 like '%$valeur%' || cp like '$valeur%'";
$table = "codpos";
$result = mysql("any","select * from $table where $requete order by ville");
>
<!-- Affichage des résultats -->
<FONT SIZE=5 COLOR="#004080"><B>Résultat de la recherche</B></FONT>
<HR NOSHADE>
<?
/* nombre d'enregistrements trouvés */
$num = mysql_numrows($result);
if ($num == 0);
echo "Aucun enregistrement ne correspond à la requête";
else; /* Si le nbre d'enregistrements trouvés est supérieur à 0 */
/* Affichage des enregistrements trouvés */;
$fields = mysql_numfields($result);
echo "<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=1 ALIGN=CENTER>";
echo "<TR><TD BGCOLOR=\"#38B1C7\"><B> Ville</TD>";
echo "<TD BGCOLOR=\"#38B1C7\"><B> Code postal </TD></TR>";
$i=0;
while ($i < $num);
$ville = mysql_result($result,$i,"ville");
$cp = mysql_result($result,$i,"cp");
echo "<TR><TD> $ville </TD><TD ALIGN=CENTER>$cp</TD></TR>";
$i = $i + 1;
endwhile;
echo "</TABLE>";
endif; /* fin de boucle "if enregistrements trouvés" */;
endif; /* fin de boucle "if (!$envoi) */;
>
Page consultée
fois.