Código PHP:
$sql = "SELECT E.Id_empleado, E.Nombre, E.Apellido_Paterno, E.Apellido_Materno, E.Id_general, E.Id_escolaridad, E.Id_direccion, E.CURP, E.RFC, E.IMSS, E.INFONAVIT, E.Id_puesto, E.Fecha_inicio, E.Renew1, E.Renew2, E.Renew3, E.Sueldo FROM contra_empleados E "; $count=0; $i=0; IF(ISSET($_REQUEST['vENVIAR']))
{ $string=$vNombre."_".$vAPPA."_".$vAPMA."_".$vSEXO."_".$vEDAD."_".$vEDOCIV."_".$vCURP."_".$vRFC."_".$vTITULO."_".$vINSTITUCION."_".$vDESCESC."_".$vIMSS."_".$vINFONAVIT."_".$vCALLE."_".$vCOLONIA."_".$vDELMUN."_".$vEDO."_".$vSUELDO."_".$vJOB."_".$vINICIO."_".$vMES."_".$vTRIO."_".$vANIO; $cadena = explode("_",$string); $Nvals = array_filter($cadena); $countNvals = count($Nvals);$dir = "SELECT Id_direccion FROM contra_direccion WHERE "; $esc = "SELECT Id_escolaridad FROM contra_escolaridad WHERE "; $grals = "SELECT Id_general FROM contra_desc_general WHERE "; IF($countNvals>=1)
{
$sql.= " WHERE ";
IF($Nvals[0] AND preg_match("/([0-9])/",$Nvals[0])==0)
{
$sql .= " E.nombre LIKE '%$Nvals[0]%' "; IF($countNvals>1 AND $Nvals[0]!=$Nvals[max(array_keys($Nvals))]) $sql .= " AND "; }
elseif(preg_match("/([0-9])/",$Nvals[0])==1) { echo "TIENES UN NUMERO EN NOMBRE <BR/>";$i++;} IF($Nvals[1] AND preg_match("/([0-9])/",$Nvals[1])==0)
{
$sql.= "E.Apellido_Paterno LIKE '%$Nvals[1]%' "; IF($countNvals>1 AND $Nvals[1]!=$Nvals[max(array_keys($Nvals))]) $sql .= " AND "; }
elseif(preg_match("/([0-9])/",$Nvals[1])==1) { echo "TIENES UN NUMERO EN APELLIDO PATERNO<BR/>"; $i++;}
IF($Nvals[2] AND preg_match("/([0-9])/",$Nvals[2])==0){ $sql.= "E.Apellido_Materno LIKE '%$Nvals[2]%' "; IF($countNvals>1 AND $Nvals[2]!=$Nvals[max(array_keys($Nvals))]) $sql .= " AND ";
}elseif(preg_match("/([0-9])/",$Nvals[2])==1){ echo "TIENES UN NUMERO EN APELLIDO MATERNO <BR/>"; $i++; } IF(($Nvals[3]) OR ($Nvals[4]) OR ($Nvals[5])){IF($Nvals[3] AND preg_match("/([0-9])/",$Nvals[3])==0) { $count++; IF($count>1 AND $count<=3)
{
$countNvals--; $grals .= " AND "; }
$grals .= " sexo LIKE '%$Nvals[3]%' "; }elseif(preg_match("/([0-9])/",$Nvals[3])==1) { echo "TIENES UN NUMERO EN SEXO <BR/>"; $i++; $Nvals[3] = ""; }
IF($Nvals[4] AND preg_match("/([a-zA-Z])/",$Nvals[4])==0){
$count++; IF($count>1 AND $count<=3) { $countNvals--; $grals .= " AND ";} $grals .= " edad LIKE '%$Nvals[4]%' "; }elseif(preg_match("/([a-zA-Z])/",$Nvals[4])==1) { echo "TIENES LETRAS EN LA EDAD <BR/>"; $i++; $Nvals[4] = NULL; } IF($Nvals[5] AND preg_match("/([0-9])/",$Nvals[5])==0) { $count++; IF($count>1 AND $count<=3) { $countNvals--; $grals .= " AND "; } $grals .= " estado_civil LIKE '%$Nvals[5]' "; }elseif(preg_match("/([0-9])/",$Nvals[5])==1) { echo "TIENES UN NUMERO EN ESTADO CIVIL <BR/>"; $i++; $Nvals[5] = ""; }
$gral = @mysql_query($grals);
$j=0;while($gra = @mysql_fetch_row($gral)) { $j++; $sql .= " E.id_general = ".$gra[0]; if($j>0 and $j<mysql_num_rows($gral)) $sql .= " OR "; } IF($countNvals>1 AND ($Nvals[5]!=$Nvals[max(array_keys($Nvals))] AND $Nvals[4]!=$Nvals[max(array_keys($Nvals))] AND $Nvals[3]!=$Nvals[max(array_keys($Nvals))])) $sql .= " AND "; } IF($Nvals[6] AND preg_match("/^[A-Z]{4}[0-9]{6}[A-Z0-9]{0,8}?/",$Nvals[6])==1)
{
$sql .= " E.CURP LIKE '%$Nvals[6]%' "; IF($countNvals>1 AND $Nvals[6]!=$Nvals[max(array_keys($Nvals))]) $sql.= " AND "; }
ELSEIF(preg_match("/^[A-Z]{4}[0-9]{6}[A-Z0-9]{0,8}?/",$Nvals[6])==0 AND !empty($Nvals[6])) { echo "EL FORMATO EN EL CURP NO COINCIDE<br/>"; $i++; } IF($Nvals[7] AND preg_match("/^[A-Z]{4}[0-9]{6}[A-Z0-9]{0,3}?/",$Nvals[7])==1) { $sql .= " E.RFC LIKE '%$Nvals[7]%'"; IF($countNvals>1 AND $Nvals[7]!=$Nvals[max(array_keys($Nvals))])$sql.= " AND "; }ELSEIF(preg_match("/^[A-Z]{4}[0-9]{6}[A-Z0-9]{0,3}?/",$Nvals[7])==0 AND !empty($Nvals[7])){ echo "EL FORMATO EN EL RFC NO COINCIDE<BR/>"; $i++; } IF(($Nvals[8]) OR ($Nvals[9]) OR ($Nvals[10])) { IF($Nvals[8] AND preg_match("/([0-9])/",$Nvals[8])==0) { $count++; IF($count>1 AND $count<=3)
{ $countNvals--; $esc .= " AND "; }
$esc .= " Titulo_carrera LIKE '%$Nvals[8]%' "; }
elseif(preg_match("/([0-9])/",$Nvals[8])==1)
{ echo "TIENES UN NUMERO EN EL TITULO DE LA CARRERA<BR/>"; $i++; $Nvals[8] = ""; }
IF($Nvals[9] AND preg_match("/([0-9])/",$Nvals[9])==0) { $count++; IF($count>1 AND $count<=3) { $countNvals--; $esc .= " AND "; } $esc .= " Institucion LIKE '%$Nvals[9]%' "; } elseif(preg_match("/([0-9])/",$Nvals[9])==1)
{ echo "TIENES LETRAS EN LA EDAD <BR/>"; $i++; } IF($Nvals[10] AND preg_match("/([0-9])/",$Nvals[10])==0) { $count++; IF($count>1 AND $count<=3) { $countNvals--; $esc .= " AND ";}
$esc .= " Descripcion LIKE '%$Nvals[10]' "; } elseif(preg_match("/([0-9])/",$Nvals[10])==1) { echo "TIENES UN NUMERO EN LA DESCRIPCION <BR/>"; $i++; $Nvals[10] = ""; } $ESCUELA = @mysql_query($esc); $j = 0;
while($rowEscolaridad = @mysql_fetch_row($ESCUELA)) { $j++; $sql .= " E.id_escolaridad = ".$rowEscolaridad[0]; if($j>0 and $j<mysql_num_rows($ESCUELA))
$sql .= " OR ";}
IF($countNvals>1 AND ($Nvals[8]!=$Nvals[max(array_keys($Nvals))] AND $Nvals[9]!=$Nvals[max(array_keys($Nvals))] AND $Nvals[10]!=$Nvals[max(array_keys($Nvals))])) $sql .= " AND ";}
IF($Nvals[11] AND preg_match("/([a-zA-Z])/",$Nvals[11])==0) { $sql .= "E.IMSS LIKE '%$Nvals[11]%' "; IF($countNvals>1 AND $Nvals[11]!=$Nvals[max(array_keys($Nvals))]) $sql.= " AND "; }
ELSEIF(preg_match("/([a-zA-Z])/",$Nvals[11])==1) { echo "EL REGISTRO DEL IMSS NO ACEPTA LETRAS, REVISE<br/>"; $i++;}
IF($Nvals[12] AND preg_match("/([a-cA-Ce-mE-Mo-zO-Z])/",$Nvals[12])==0) { $sql .= "E.INFONAVIT LIKE '%$Nvals[12]%' "; IF($countNvals>1 AND $Nvals[12]!=$Nvals[max(array_keys($Nvals))])
$sql.= " AND "; }ELSEIF(preg_match("/([a-cA-Ce-mE-Mo-zO-Z])/",$Nvals[12])==1) { echo "EL REGISTRO DEL INFONAVIT NO ACEPTA LETRAS A N/D, REVISE<br/>"; $i++; } IF(($Nvals[13]) OR ($Nvals[14]) OR ($Nvals[15]) OR ($Nvals[16])) { IF($Nvals[13]) { $count++; IF($count>1 AND $count<=3){$countNvals--; $dir .= " AND "; } $dir .= " calle LIKE '%$Nvals[13]%' "; } IF($Nvals[14] AND preg_match("/([0-9])/",$Nvals[14])==0){$count++;
IF($count>1 AND $count<=3) { $countNvals--; $dir .= " AND "; } $dir .= " colonia LIKE '%$Nvals[14]%' ";}
IF($Nvals[15] AND preg_match("/([0-9])/",$Nvals[15])==0) { $count++; IF($count>1 AND $count<=3) { $countNvals--; $dir .= " AND "; } $dir .= " del_mun LIKE '%$Nvals[15]' "; } ELSEIF(preg_match("/([0-9])/",$Nvals[15])==1) { ECHO "EL CAMPO DE LA DELEGACION/MUNICIPIO SOLO ACEPTA LETRAS, REVISE<br/>"; $i++; } IF($Nvals[16] AND preg_match("/([0-9])/",$Nvals[16])==0) { $count++; IF($count>1 AND $count<=3) { $countNvals--; $dir .= " AND "; } $dir .= " estado LIKE '%$Nvals[16]' "; } ELSEIF(preg_match("/([0-9])/",$Nvals[16])==1){ECHO "EL CAMPO DEL ESTADO SOLO ACEPTA LETRAS, REVISE<br/>"; $i++; } $direccion = @mysql_query($dir); $j = 0; while($rowDireccion = @mysql_fetch_row($direccion)) { $j++; $sql .= " E.id_direccion = ".$rowDireccion[0]; if($j>0 and $j<mysql_num_rows($direccion)) $sql .= " OR ";}IF($countNvals>1 AND ($Nvals[13]!=$Nvals[max(array_keys($Nvals))] AND $Nvals[14]!=$Nvals[max(array_keys($Nvals))] AND $Nvals[15]!=$Nvals[max(array_keys($Nvals))] AND $Nvals[16]!=$Nvals[max(array_keys($Nvals))])) $sql.= " AND "; } IF($Nvals[17] AND preg_match("/([a-zA-Z])/",$Nvals[17])==0){$sql .= " E.Sueldo = $Nvals[17] "; IF($countNvals>1 AND $Nvals[17]!=$Nvals[max(array_keys($Nvals))]) $sql.= " AND "; } ELSEIF(preg_match("/([a-zA-Z])/",$Nvals[17])==1) { ECHO "EL CAMPO DEL SUELDO SOLO ACEPTA NUMEROS, REVISE<br/>"; $i++; } IF($Nvals[18] AND preg_match("/([0-9])/",$Nvals[18])==0){$job="SELECT Id_puesto FROM contra_perfil WHERE Nombre LIKE '%$Nvals[18]%'"; $hob=@mysql_query($job); $hobs = @mysql_fetch_row($hob); $sql .=" Id_puesto = $hobs[0] "; IF($countNvals>1 AND $Nvals[18]!=$Nvals[max(array_keys($Nvals))]) $sql.= " AND "; }ELSEIF(preg_match("/([0-9])/",$Nvals[18])==1) { ECHO "EL CAMPO DEL PUESTO SOLO ACEPTA LETRAS, REVISE<br/>"; $i++;}$Fini = FormatoAAMMDDFecha($cadena[19]); $Fmes = FormatoAAMMDDFecha($cadena[20]); $Ftrio = FormatoAAMMDDFecha($cadena[21]); $Fanio = FormatoAAMMDDFecha($cadena[22]); IF($Nvals[19] AND preg_match("/(\d{2}\-\d{2}\-\d{2})/",$Nvals[19])==1){$sql .= "E.Fecha_inicio LIKE '%$Fini%' "; IF($countNvals>1 AND $Nvals[19]!=$Nvals[max(array_keys($Nvals))]) $sql.= " AND "; }ELSEIF(preg_match("/(\d{2}\-\d{2}\-\d{2})/",$Nvals[19])==0 AND !empty($Nvals[19])) { ECHO "LA FECHA DE INICIO NO TIENE EL FORMATO DD-MM-AA EN NUMEROS, REVISE<br/>"; $i++; } IF($Nvals[20] AND preg_match("/(\d{2}\-\d{2}\-\d{2})/",$Nvals[20])==1) { $sql .= "E.renew1 LIKE '%$Fmes%' "; IF($countNvals>1 AND $Nvals[20]!=$Nvals[max(array_keys($Nvals))]) $sql.= " AND "; }ELSEIF(preg_match("/(\d{2}\-\d{2}\-\d{2})/",$Nvals[20])==0 AND !empty($Nvals[20])) { ECHO "LA FECHA DE LA PRIMERA RENOVACION NO TIENE EL FORMATO DD-MM-AA, REVISE<br/>"; $i++; } IF($Nvals[21] AND preg_match("/(\d{2}\-\d{2}\-\d{2})/",$Nvals[21])==1) { $sql .= "E.renew2 LIKE '%$Ftrio%' "; IF($countNvals>1 AND $Nvals[21]!=$Nvals[max(array_keys($Nvals))]) $sql.= " AND "; }ELSEIF(preg_match("/(\d{2}\-\d{2}\-\d{2})/",$Nvals[21])==0 AND !empty($Nvals[21])) { ECHO "LA FECHA DE LA SEGUNDA RENOVACION NO TIENE EL FORMATO DD-MM-AA EN NUMEROS, REVISE<br/>"; $i++; } IF($Nvals[22] AND preg_match("/(\d{2}\-\d{2}\-\d{2})/",$Nvals[22])==1) { $sql .= "E.renew3 LIKE '%$Fanio%' "; }ELSEIF(preg_match("/(\d{2}\-\d{2}\-\d{2})/",$Nvals[22])==0 AND !empty($Nvals[22])) { ECHO "LA FECHA DE LA TERCERA RENOVACION NO TIENE EL FORMATO DD-MM-AA EN NUMEROS, REVISE<br/>"; $i++;}}