Foros del Web » Programando para Internet » PHP »

validar con php tres campos de una tabla

Estas en el tema de validar con php tres campos de una tabla en el foro de PHP en Foros del Web. Buenas foreros, os comento mi idea: tengo la siguiente tabla: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original CREATE TABLE `empresas _ trabajo _ egresado` (   ...
  #1 (permalink)  
Antiguo 10/03/2011, 15:47
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
validar con php tres campos de una tabla

Buenas foreros, os comento mi idea: tengo la siguiente tabla:


Código MySQL:
Ver original
  1. CREATE TABLE `empresas_trabajo_egresado` (
  2.   `NUM_CED_EGR` bigint(11) NOT NULL,
  3.   `NIT_EMP` int(11) NOT NULL,
  4.   `COD_CAR` int(11) NOT NULL,
  5.   `DES_CAR` varchar(100) default NULL,
  6.   `FEC_INI` date default NULL,
  7.   `FEC_FIN` date default NULL,
  8.   PRIMARY KEY  (`NUM_CED_EGR`,`NIT_EMP`,`COD_CAR`),
  9.   KEY `FK_EMPRESAS_TRABAJO_EGRESADO2` (`NIT_EMP`),
  10.   KEY `FK_REFERENCE_TRABAJO_EGRESADO3` (`COD_CAR`)
  11. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Y necesito saber de que forma puedo validar que no se repita el ingreso de los tres primeros campos: NUM_CED_EGR, NIT_EMP y COD_CAR

Normalmente y para validar un solo campo lo hago de la siguiente forma:

Código HTML:
Ver original
  1. <form action="guardar_nueva_empresa.php" name="form1" method="post" ENCTYPE="multipart/form-data">
  2.  
  3.  <input type="text" name="nit_empresa" id="nit_empresa" onblur="peticionAjax('comprueba_nit.php?nit_empresa='+this.value,'resultado')"/>
  4.  
  5. <input type="submit" value="Registrar" onclick="return valida();"/>
  6.  
  7. </form>

haciendo uso de una peticion ajax y utilizando un script php para la validacion..pero como puedo hacer esto mismo para tres campos a la vez?..

es decir como ejecuto el evento onblur en los tres campos?

este es el script q comprueba si existe un registro

Código PHP:
Ver original
  1. <?PHP
  2. $db = mysql_connect("localhost", "root", "root");
  3. mysql_select_db("mi_base_de_datos", $db);
  4. $sql="SELECT * FROM empresa WHERE NIT_EMP='".$_REQUEST['nit_empresa']."'";
  5. $consulta = mysql_query($sql, $db)  or die (mysql_error($db));
  6. if (mysql_num_rows($consulta)>0)
  7. {
  8. echo "<center><span id='error' style='color:red' title='1'>El nit ya se encuentra en uso</span></center>";
  9. }else
  10. {
  11. echo "<span id='error'  title='0'></span>";
  12. }
  13. ?>

O de que otra forma me recomiendan hacer la validacion?

Gracias por la ayuda.......
  #2 (permalink)  
Antiguo 10/03/2011, 21:56
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: validar con php tres campos de una tabla

Tendrias que hacer al menos dos cosas:
Oculta todos los campos que no tienen que ver con la validacion
Pon el evento onblur en el tercer campo y te llevas los 3 valores

Y por el lado del archivo que hace la validacion, debes agregar todos los campos al WHERE.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 11/03/2011, 11:03
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: validar con php tres campos de una tabla

Ok, opte por hacerlo solo con php...y tengo un problema tal vez con la forma como hago las condiciones (ejecucion if)..Resulta que existe un campo empresa en donde la persona ingresando el nombre de la misma, puede encontrar sugerencias de empresas (las cuales existen en la base de datos)....el problema es que quiero validar que si la persona no selecciona una opcion de la sugerencia (si ingresa un nombre de empresa que no existe, me genere un mensaje y por consiguiente no me guarde el registro)....el mensaje se muestra, pero el registro se guarda...y ese es el error:
Lo hago asi:

Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4. include ("config.php");
  5. include ("opendb.php");
  6.  
  7. $cedula=$_POST['cedula'];
  8. $input_2=$_POST['input_2'];
  9. $cargo=$_POST['cargo'];
  10. $descripcion=$_POST['descripcion'];
  11. $fecha_inicio=$_POST['fecha_inicio'];
  12. $fecha_fin=$_POST['fecha_fin'];
  13.  
  14.  
  15. //ahora busco el codigo de la empresa que fue ingresada en el campo input_2
  16.  
  17. $sqlempresa="select * from empresa where RAZ_SOC_EMP='$input_2'";
  18.             $tabla_empresa=mysql_query($sqlempresa);
  19.         $row = mysql_fetch_row($tabla_empresa);
  20.                $input_2=$row[0];
  21.                
  22.        
  23.         if ( !$tablaciudad )
  24.         die ("Error ejecutando la consulta");
  25.    
  26.     $num_filas = mysql_num_rows($tablaciudad);
  27.    
  28.     if ($num_filas <= 0){
  29.    
  30.     echo '<h2> <center>Estimado egresado ha ingresado una empresa que no se encuentra en la base de datos</center></h2>';
  31.    
  32.         }
  33.     if ($num_filas>0)
  34.     {
  35.    
  36.     $qry = "SELECT * FROM empresas_trabajo_egresado WHERE NUM_CED_EGR = '$cedula' and NIT_EMP='$input_2' and COD_CAR='$cargo'";
  37.     $consulta = mysql_query ($qry);
  38.                    
  39.     $encontrado = mysql_num_rows($consulta);
  40.    
  41.     }
  42.    
  43.    
  44.     if ($encontrado > 0){      
  45.         echo '<h2> <center>Lo sentimos, no se puede guardar el registro, porque usted ya se encuentra registrado en la empresa con el cargo</center></h2>';
  46.        
  47.         }
  48.         if ($encontrado <=0)
  49.     {
  50.                
  51.         $query = "INSERT INTO empresas_trabajo_egresado (NUM_CED_EGR, NIT_EMP, COD_CAR, DES_CAR, FEC_INI, FEC_FIN)
  52.  
  53. VALUES ('$cedula', '$input_2', '$cargo', '$descripcion', '$fecha_inicio', '$fecha_fin')";
  54.  
  55.    
  56.         $resultado = mysql_query ( $query );
  57.  
  58.     if ( !$resultado )
  59.         die ("Error al guardar la información: ".mysql_error());
  60.        
  61.        
  62.    
  63.      
  64.    
  65.     mysql_close ( $conn );
  66.    
  67.  
  68. }
  69. ?>

es un problema de manejo de llaves { }

de tanto hacerle no he caido en cuenta donde la estoy cerrando mal.....

Agradezco me ayuden

quiero que si la empresa no existe, no se ingrese nada..

Agradezco me puedan ayudar.....

Etiquetas: campos, tres, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:04.