Foros del Web » Programando para Internet » PHP »

Ingresar Maximo registros segun campo PHP-ORACLE

Estas en el tema de Ingresar Maximo registros segun campo PHP-ORACLE en el foro de PHP en Foros del Web. Hola amigos soy nuevo en el foro tambien en php ,espero encontrar aca la ayuda que necesito y tambien poder ayudar a quien lo necesite ...
  #1 (permalink)  
Antiguo 14/02/2013, 13:31
 
Fecha de Ingreso: febrero-2013
Mensajes: 21
Antigüedad: 11 años, 2 meses
Puntos: 0
Ingresar Maximo registros segun campo PHP-ORACLE

Hola amigos soy nuevo en el foro tambien en php ,espero encontrar aca la ayuda que necesito y tambien poder ayudar a quien lo necesite
bueno al grano estoy trabajando con php y oracle

tengo un formulario donde ingreso registros ,la idea es que segun un campo"conductor"pueda ingresar un maximo de solictudes (3 por conductor)
es decir ingreso los registros en la base de datos y que de alguna forma metodo,contador vea si es la tercera vez que ingreso registro con ese nombre y si es el 4 ingreso me salga in mesanje explicandome que es un maximo de 3 ingresos
se entiende?
bueno hasta el momento tengo solo el ingreso ,en la priemera hoja
tengo los datos y un combobox que cargo con una consulta de la tabla donde estan todos los conductores para luego hacer el insert
bueno eso seria cualquier comentario sirve
saludos ..

pagina 1:
Código PHP:


<?php include("conexion.php"); 

         
$conductor oci_parse($objConnect"SELECT NOMBRES,APELLIDOS FROM TI_CONDUCTOR ");
         
oci_execute($conductor);    

?>


<div id="form">
    <form id="form01" name="form01" class="formular" action="solicitud_creado.php" method="post">
    <b>Crear nueva solictud</b>
    <fieldset>
    <table border="0">
    <tr>
        <td valign="top">
        Número de reporte :
      <input value="" class="validate[required] text-input" type="text" name="id_reporte" id="id>_reporte" />
      <br>
        Número de Nomina :
      <input value="" class="validate[required] text-input" type="text" name="n_nomina" id="n_nomina" />
        <br>

 Conductor :
        <select name="conductor" id="conductor">
        <?php                                                                       
        
while ($row oci_fetch_array($conductor)){?>
        <option value="<?php echo $row['NOMBRES']?> <?php echo $row['APELLIDOS']?>"> <?php echo $row['NOMBRES'];?>  <?php echo $row['APELLIDOS'];?></option>
       <?php }?>
       </select>


    </fieldset>
    <input class="submit" type="submit" value="Guardar"/><hr/>
    </form>
pagina 2:


Código PHP:

<form id="form01" class="formular" method="post" action="caratulas.php" name="frmEdit" />
<?php include("conexion.php");

    
$result_solicitud oci_parse($objConnect"SELECT MAX(id_solicitud)+1 solicitud FROM solicitudes_conductor");    
    
oci_execute($result_solicitud);
    
$solicitud oci_fetch_assoc($result_solicitud);
    
$strSQL "INSERT solicitudes_conductor (id_solictud, id_reporte,  nro_nomina, conductor )                    
              values ("
.$solicitud['solicitud'].",
            '"
.$_POST["id_reporte"]."',
            '"
.$_POST["n_nomina"]."',
                    '"
.$_POST["conductor"]."')";                                
    
$objParse oci_parse($objConnect$strSQL);
    
$objExecute oci_execute($objParseOCI_DEFAULT);
    
    if(
$objExecute)
    {
        
oci_commit($objConnect); //*** Commit Transaction ***//
        
echo "<br><br><br><div align='center' style='color:#FFF; font-family:Arial, Helvetica, sans-serif' ><b>registro creado.</b></div>";
        
$tabla true;
    }
    else
    {
        
oci_rollback($objConnect); //*** RollBack Transaction ***//
        
$e oci_error($objParse); 
        echo 
"<br><br><br><div align='center' style='color:#FFF; font-family:Arial, Helvetica, sans-serif' ><b>Error al Crear registro: [".$e['message']."]</b></div>";
        
$tabla false;
    }
    
oci_close($objConnect);
    
    if(
$tabla)
    {        
        
    }

?>
<input class="submit" type="submit" value="Volver a Caratulas"/><hr/>

</form>

Última edición por Sandiuga; 14/02/2013 a las 13:39
  #2 (permalink)  
Antiguo 15/02/2013, 09:30
 
Fecha de Ingreso: febrero-2013
Mensajes: 21
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Ingresar Maximo registros segun campo PHP-ORACLE

amigos en el fondo lo que necesito hacer es una comparacion

consulta compare el registro en una tabla y si en esa tabla
el registro se encuentra 3 veces no hacer el insert de los demas campos
se entiende?

hasta el momento tengo solo insert pero no se me ocurre como hacer la comparacion
un registro del campo "conductor" no puede estar mas 3 veces en la tabla
saludos ,cualquier ayuda sirve
saludos..
  #3 (permalink)  
Antiguo 24/02/2013, 07:34
 
Fecha de Ingreso: septiembre-2009
Mensajes: 210
Antigüedad: 14 años, 7 meses
Puntos: 19
Respuesta: Ingresar Maximo registros segun campo PHP-ORACLE

Se me ocurre que podrías hacer una consulta a la BBDD antes de permitir insertar, en la cual preguntas cuantas veces está ese conductor en la tabla, es decir "select count(conductor) from TABLA;"
Obviamente poniendo los campos que veas convenientes.
El resultado de ese select lo comparas con "3" y si es igual, pues no permite el ingreso.

OJO: Todo esto viene a raíz de que entendí que son tres registros diferentes.
  #4 (permalink)  
Antiguo 01/03/2013, 07:45
 
Fecha de Ingreso: febrero-2013
Mensajes: 21
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Ingresar Maximo registros segun campo PHP-ORACLE

Gracias por responder , he tratado de hacer una consulta que haga eso
pero no me funciona en la comparacion
explico de nuevo la logica,

si un conductor tiene 3 caratulas en estado "abierta" al intentar ingresar una 4 caratula abierta no debe permitir ingresar

la consulta:

Código PHP:
Ver original
  1. Código PHP:
  2. <?php include("php_conn.php");
  3.  
  4. echo $sql = "SELECT COUNT (*) FROM CARATULAS WHERE estado='Abierta' AND conductor = '".$_POST["conductor"]."'";
  5. $cabiertas = oci_parse($objConnect, $sql);    
  6. oci_execute($cabiertas);    
  7. echo "resultado : ".oci_num_rows($cabiertas)."<br/>".$sql."<br/>";
  8.  
  9.  
  10. if (oci_num_rows($cabiertas) >=3)
  11. {
  12.   // YA EXISTEN 3 CARATULAS ABIERTAS PARA UN CONDUCTOR ,MOSTRAR LA ADVERTENCIA    
  13. echo "<br><br><br><div align='center' style='color:#FFF; font-family:Arial, Helvetica, sans-serif' >
  14.      <b>NO PUEDE INGRESAR MAS 3 CARATULAS ABIERTAS POR CONDUCTOR: [".$e['message']."]</b></div>";    
  15. }
  16. else
  17. {
  18.   //EXISTEN MENOS DE 3 ,INSERTAR
  19.      
  20. $estado = "Abierta";//INGRESO POR DEFECTO CARATULA ABIERTA
  21.  
  22. echo $strSQL = "INSERT INTO CARATULAS (id_solicitud, id_nomina, fecha_creacion,fecha_apertura, usuario,
  23.           dine_apertura, estado, conductor, empresa)                    
  24.              values ('".$_POST["n_solicitud"]."',        
  25.            '".$_POST["n_nomina"]."',
  26.            TO_DATE('".$_POST["f_rendicion"]."','dd-mm-yyyy'),
  27.            TO_DATE('".$_POST["f_apertura"]."','dd-mm-yyyy'),            
  28.            '".$_POST["usuario"]."',
  29.            '".$_POST["p_apertura"]."',      
  30.            '".$estado."',//INGRESO POR DEFECTO              
  31.            '".$_POST['conductor']."',
  32.            '".$_POST["empresa"]."')";
  33.     $objParse = oci_parse($objConnect, $strSQL);
  34.     $objExecute = oci_execute($objParse, OCI_DEFAULT);
  35.    
  36.     if($objExecute)
  37.     {
  38.         oci_commit($objConnect); //*** Commit Transaction ***//
  39.         echo "<br><br><br><div align='center' style='color:#FFF; font-family:Arial, Helvetica, sans-serif' ><b>Caratula Creada exitosamente.</b></div>";
  40.         $tabla = true;
  41.     }
  42.     else
  43.     {
  44.         oci_rollback($objConnect); //*** RollBack Transaction ***//
  45.         $e = oci_error($objParse);
  46.         echo "<br><br><br><div align='center' style='color:#FFF; font-family:Arial, Helvetica, sans-serif' ><b>Error al Crear Caratula: [".$e['message']."]</b></div>";
  47.         $tabla = false;
  48.     }
  49.     oci_close($objConnect);
  50.    
  51.     if($tabla)
  52.     {        
  53.        
  54.     }
  55.    
  56.  }
  57.    
  58. ?>

Etiquetas: campo, formulario, maximo, registro, registros, select, sql, tabla
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 07:26.