Tienes que comparar todos los valores de las tablas y que no se vaya repitiendo... algo asi
Código PHP :
//HACE UNA CONSULTA A TODOS LOS CAMPOS PARA OBTENER EL ULTIMO ID REGISTRADO
$myquery = mysql_query("SELECT * FROM PERSON ORDER BY IDPERSON");
//SI FALLA LA CONSULTA MANDA UN ERROR
if(!$myquery)
die('Consulta no Valida: '.mysql_error());
//ESTA ES UNA VARIABLE DE CONTROL, PERMANECERA EN false HASTA QUE EL NOMBRE Y APELLIDOS SE REPITAN (COSA QUE NO DEBE OCURRIR)
$duplicado = false;
//SI LA CONSULTA ARROJO 1 VALOR O MAS REALIZA LO SIGUENTE
if(mysql_num_rows($myquery) != 0)
{
//MIENTRAS HAYA VALORES, SE IMPRIMEN CADA UNO DE ELLOS
while ($myresult = mysql_fetch_array($myquery))
{
//CONTADOR DE REPETICIONES
//SE INICIA EN CERO E INDICA QUE NO HAY CAMPOS REPETIDOS
$checkrepeated = 0;
//COMPARA SI INSERTNAME LLEVA UN VALOR Y (&&) SI ES IGUAL A UN VALOR EXISTENTE SUMA +1 A $checkrepeated
if(isset($_POST["insertname"]) && $myresult['NAME'] == $_POST["insertname"])
$checkrepeated++;
//lo MISMO PERO PARA LASTNAME
if(isset($_POST["insertlastname"]) && $myresult["LASTNAME"] == $_POST["insertlastname"])
$checkrepeated++;
//LO MISMO PARA MOMMAIDEN
if(isset($_POST["insertmommaidenname"]) && $myresult["MOMMAIDENNAME"] == $_POST["insertmommaidenname"])
$checkrepeated++;
//SI LA CUENTA DE CAMPOS REPETIDOS LLEGA A 3 SIGNIFICA QUE ESTA DUPLICADO
//CAMBIA LA VARIABLE DUPLICADO A true
if($checkrepeated == 3)
$duplicado = true;
//SI ESTA DUPLICADO MANDA UN MENSAJE Y CORTA EL CICLO CON break ASI NO SE HAYA TERMINADO
if($duplicado == true)
{
echo "El registro es un duplicado, inserta nuevos datos<br>";
break;
}
//EN ESTE PUNTO EL PROGRAMA SABE QUE NO ESTA DUPLICADO Y ALMACENA EL IDPERSON DEL ULTIMO REGISTRO
$nuevoID = $myresult["IDPERSON"];
}
//LO CAMBIO A ENTERO POR QUE VIENE COMO UN TEXTO
setType($nuevoID,"integer");
//LE SUMO 1 ESTO ES POR QUE SI EL ULTIMO ES 32, EL NUEVO ID SERA 33 Y ASI CON X CANTIDAD DE REGISTROS
$nuevoID++;
}
//COMPRUBA SI DUPLICADO ESTA EN false Y QUE LOS DATOS AL INICIO SE HAYAN INSERTADO LOS 4
//SI ALGUNA DE LAS DOS NO ES VERDAD, NO REALIZA NADA
if($duplicado == false && $datos == 4)
{
//TOMA LAS VARIABLES
$name = $_POST["insertname"];
$lastname = $_POST["insertlastname"];
$mommaiden = $_POST["insertmommaidenname"];
$birthday = $_POST["insertbirthday"];
echo "Datos a Isertar: $nuevoID - $name $lastname $mommaiden<br>";
//REALIZA LA CONSULTA
$insertquery = mysql_query("INSERT INTO PERSON VALUES($nuevoID,'$name','$lastname','$mommaiden','$birthday','','')");
//SI LA CONSULTA SE EJECUTA CORRECTAMENTE ENVIA UN MENSAJE
if($insertquery)
echo "<strong>Nuevo Registro Ingresado Correctamente</strong>";
//SI NO FUNCIONA ENVIA EL ERROR
else
die("Consulta Invalida".mysql_error());
}
//EN CASO DE QUE LOS 4 VALORES INICIALES ESTEN VACIOS O EN EL VALOR POR DEFECTO
//SOLICITA LLENARLOS
else
echo "<br>//Rellena todos los campos"