New question

Question:

Date: 05-04-2019 16:27:13 (In Spanish)

Actualizar 2 tabllas al mismo tiempo Codeigniter desde un mismo formulario[Unresolved]

Lo que trato es que se pueda actualizar la informacion de empleado y persona el empleado se actualiza normal pero quiero actualizar el nombre de ese empleado que se encuentra en la tabla persona ahora bien la tabla persona es la que tiene la llave primaria y la de empleado la foranea

este es mi modelo

 function upd_empleado($where, $data) {        
        $this->db->update('empleado', $data, $where);
        return $this->db->affected_rows();
        
    }



Controlador
 public function actualizar_empleado() {
     
        
     
        $data = array(
         
            'fk_id_tp_empleado' => $this->input->post('id_tp_empleado'),
        );

        $data = array(
          
            'fk_id_sede' => $this->input->post('id_sede'),
        );

        $data = array(
           
            'fk_id_area' => $this->input->post('id_area'),
        );

        $data = array(

            'fk_id_estado' => $this->input->post('id_estado'),
        );
        $this->mempleado->upd_empleado(array('id_empleado' => $this->input->post('id_empleado')), $data);

        redirect('usuarios/empleado');
    }


Formulario
<div class="content-wrapper">
    <!-- Content Header (Page header) -->
    <section class="content-header">
      <h1>
        Tabla de datos
        <small>advanced tables</small>
      </h1>
      <ol class="breadcrumb">
        <li><a href="#"><i class="fa fa-dashboard"></i> Home</a></li>
        <li><a href="#">Tablas</a></li>
        <li class="active">Tabla de datos</li>
      </ol>
    </section>

    <!-- Main content -->
    <section class="content">
      <div class="row">
        <div class="col-xs-12">
          <div class="box">
            <div class="box-header">
              <h3 class="box-title">Tabla Empleados</h3>
            </div>
            <!-- /.box-header -->
            <div class="box-body">
                <?php
                    foreach($empleado_data->result() as $row)
                    { ?>
                        <form method="post" action="<?php echo base_url(); ?>usuarios/empleado/actualizar_empleado">
                          <div class="box-body">
                            <div class="form-group">
                              <label >Identificacion del empleado</label>

                              <input type="text" class="form-control" id="id_empleado" name="id_empleado"  value="<?php echo $row->id_empleado ?>" readonly>
                            </div>


                            <div class="form-group">
                              <label >Cargo del empleado</label>
                              <select name="id_tp_empleado" id="id_tp_empleado" class="form-control">
                                  <option value="0">Seleccione Cargo</option>
                                <?php foreach($tipoempleado_data->result() as $row_tipo) { ?>
                                    <option value="<?php echo $row_tipo->id_tp_empleado; ?>"><?php echo $row_tipo->cargo; ?></option>
                                <?php } ?>
                              </select>
                              
                            </div>

                            <div class="form-group">
                              <label >Sede</label>
                              <select name="id_sede" id="id_sede" class="form-control">
                                  <option value="0">Seleccione Sede</option>
                                <?php foreach($sede_data->result() as $row_sede) { ?>
                                    <option value="<?php echo $row_sede->id_sede; ?>"><?php echo $row_sede->ciudad; ?></option>
                                <?php } ?>
                              </select>
                              
                            </div>
                            
                            <div class="form-group">
                              <label >Area</label>
                              <select name="id_area" id="id_area" class="form-control">
                                  <option value="0">Seleccione Area</option>
                                <?php foreach($area_data->result() as $row_area) { ?>
                                    <option value="<?php echo $row_area->id_area; ?>"><?php echo $row_area->desc; ?></option>
                                <?php } ?>
                              </select>
                              
                            </div>

                            <div class="form-group">
                              <label >Estado</label>
                              <select name="id_estado" id="id_estado" class="form-control">
                                  <option value="0">Seleccione estado</option>
                                <?php foreach($estado_data->result() as $row_estado) { ?>
                                    <option value="<?php echo $row_estado->id_estado; ?>"><?php echo $row_estado->descripcion; ?></option>
                                <?php } ?>
                              </select>
                              
                            </div>

                            

                            




                        <!-- /.box-body -->

                          <div class="box-footer">
                            <button type="submit" class="btn btn-primary">Actualizar</button>
                          </div>
                        </form>
                <?php } ?>
                
              
            </div>
            <!-- /.box-body -->
          </div>
          <!-- /.box -->

          
          <!-- /.box -->
        </div>
        <!-- /.col -->
      </div>
      <!-- /.row -->
    </section>
    <!-- /.content -->
  </div>
<!-- /.content-wrapper -->
Tags: CodeIgniter - PHP Votes: 0 - Answers: 1 - Views: 9 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 06-05-2019 17:15:10 estimado amigo Kudriavka Noumi, el codigo que veo me parece muy confuso pues es contraproducente mezclar codigo HTML con PHP y no se diga Javascript, en fin.. lo que sucede es que estas tratando de hacer cosas que deben ser tratadas de una forma distinta, cuando haces una operacion con una tabla esta bien utilizar procesos individuales con ella, pero cuando quieres incluir mas de una tabla entonces debes utilizar una operacion transaccional, codeigniter te permite hace las dos cosas de echo la invitacion es que leas la seccion de transacciones que viene incluida en el manual de CI, ademas tiene algun ejemplo que puede servirte, por otro lado no he entendido muy bien porque en la funcion actualizar_empleado pones y quitas el valor de la variable $data si al final se queda con :

     $data = array(
                'fk_id_estado' => $this->input->post('id_estado'),
            );
    


    por ultimo la seccion que deberas consultar en el manual de CI es Transacciones y porcierto deberas utilizar un motor de base de datos que acepte transaccionabilidad si fuera MySQL entonces las tablas deben ser creadas con InnoDB, de otra forma no funciona el invento.

    ¿MyISAM o InnoDB? Elige tu motor de almacenamiento MySQL

    nota:
    no te tomes a mal la critica de la codificacion, es importante poder estandarizar la forma y escritura del codigo segun los estandares dados por Estandares de programacion. PSR 1 y PSR 4

    espero que puedas resolver tu problema con estas indicaciones, saludos desde la bella Guatemala
      Votes: 0 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In
 
frjcbbae garagebible.com