Mialem podobnego problema i rozwiazalem go mniej wiecej tak.
Nie jest to na 100% to co potrzebujesz ale mozna przerobic i bedzie ok
<?php
// strlen - zlicza ilosc znakow
// sprawdza czy podanae dane wystepuja już w bazie
// -- NIP --
$sprawdz_nip= "SELECT NIP FROM $tabela WHERE NIP='$NIP'";
$rezultat_sprawdz_nip=mysql_query($sprawdz_nip, $connection);
// =============== SPRAWDZENIE POPRAWNOSCI NIP'U
if ($count_nip == 0
&& $dl_nip == 13
&& (ereg ( '^[0-9]{3}-[0-9]{3}-[0-9]{2}-[0-9]{2}$' , $NIP ))) echo"<b>NIP: </b><i>$NIP</i><br />"; else
{
if ($count_nip !=0)
echo"<b>NIP: <font color=\"red\">$NIP występuje już w bazie.</big></b></font><br>"; else
{
if ($dl_nip==0)
echo"<b>NIP: <font color=\"red\">Nie podano numeru NIP.</big></b></font><br>"; else
{
echo"<b>NIP: <font color=\"red\">Wprowadzony NIP jest niepoprawny.</big></b></font><br>"; }}}
// =============== SPRAWDZENIE POPRAWNOSCI ADRESU E-MAIL
if ($dl_mail <> 0
&& (ereg('^[_a-z0-9.-]*[a-z0-9]@[_a-z0-9.-]*[a-z0-9].[a-z]{2,3}$', $Mail))) echo"<b>Mail: </b><i>$Mail</i><br>"; else
{
if ($dl_mail==0)
echo"<b>Mail: <font color=\"red\">Nie podano adresu.</big></b></font><br>"; else
{
echo"<b>Mail: <font color=\"red\">Poidany adres ma zły format.</big></b></font><br>"; }}
?>
Zmienne NIP i Mail przekazuje z normalnego formularza poprzez get