miércoles, 22 de febrero de 2017

Crud Básico con CodeIgniter y MySQL

Un CRUD (crear, leer, actualizar y eliminar) aplicación es la aplicación más importante para cualquier proyecto de desarrollo. En el frameword codeigniter, podemos fácilmente crear aplicación CRUD ya que nos permite trabajar mediante MVC.

Ejemplo CRUD

Crear un tabla"crudcodeigniter" en una base de datos MySql con los siguientes campos: id es autoincrementable , nombre, apellidos, dni, correo.

la base de datos que se uso para esta prueba fue MySQL "prueba" y la tabla "crudcodeigniter":

En las siguientes imágenes veremos el paso a paso del proyecto usando codeigniter:

El enlace del proyecto se estará dejando al final de la página:

Modelo:

modelPersona.java

<?php 

/**
* 
*/
class modelPersona extends CI_Model
{
 
 function __construct()
 {
  parent::__construct();
 }

 public function guardar($parametros){
  $this->db->insert('crudcodeigniter', $parametros);
  return $this->db->insert_id();
 }

 public function listado(){
  $r = $this->db->get("crudcodeigniter");
  return $r->result();
 }

 public function editar($parametros){
  $e = $this->db->get_where('crudcodeigniter', $parametros);
  return $e->result();
 }

 public function actualizar($parametros, $id){
  $this->db->where('id', $id);
  $this->db->update('crudcodeigniter', $parametros);
  return 1;
 }

 public function eliminar($parametro){
   $this->db->delete('crudcodeigniter', $parametro); 
 }
}


Vista:


persona.java

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>CRUD CodeIgniter</title>
 <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
    <link rel="stylesheet" href="<?php echo base_url(); ?>assets/bootstrap/css/bootstrap.min.css">
</head>
<body>
 <div class="container-fluid">
  <div class="row-fluid">
   <div class="col-md-6">
    <h4 class="text-center">Agregar Nueva Persona</h4>
    <hr>
    <span class="error"><?php if(isset($mensaje)){ echo $mensaje; }  ?></span>
    <form method="post" action="<?php echo base_url() ?>personaController/guardar">
     <input type="hidden" name="id" 
     value ="<?php if(isset($persona)){ echo ($persona[0]->{'id'}); }else{echo "0"; } ?>">
     <div class="form-group">
      <label for = "name">Nombre: </label>
      <input type="text" name="nombre" 
      value="<?php if(isset($persona)){  echo($persona[0]->{'nombre'}); }?>" 
      class="form-control">
     </div>
     <div class="form-group">
      <label for = "salary">Apellidos: </label>
      <input type="text" name="apellido" 
      value="<?php if(isset($persona)){  echo($persona[0]->{'apellidos'}); }?>"  
      class="form-control">
     </div>
     <div class="form-group">
      <label for ="designation">Dni: </label>
      <input type="text" name="dni" 
      value="<?php if(isset($persona)){ echo($persona[0]->{'dni'}); }?>" 
      class="form-control">
     </div>
     <div class="form-group">
      <label for = "salary">Correo: </label>
      <input type="text" name="correo" 
      value="<?php if(isset($persona)){  echo($persona[0]->{'correo'}); }?>" 
      class="form-control">
     </div>
     <div class="form-group">
      <input type="submit" value="<?php if(isset($persona)){echo "Editar";}else{ echo  "Guardar"; } ?>" class="btn btn-success"/>
     </div>
    </form>   
   </div>
  </div>
 </div>
</body>
</html>


Controlador:


personaController.java
 <?php 

/**
* 
*/
class personaController extends CI_Controller
{
 
 function __construct()
 {
  parent::__construct();
  $this->load->model('modelPersona');
 }

 public function crear(){
  $this->load->view('persona');
 }
 public function index(){
  $data["personas"] = $this->modelPersona->listado();
  $this->load->view("listado", $data);
 }

 public function guardar(){
  $parametros = array (
   "nombre" => $this->input->post('nombre'),
   "apellidos" => $this->input->post('apellido'),
   "dni" => $this->input->post('dni'),
   "correo" => $this->input->post('correo')
  );
  $id = $this->input->post('id');
  $data['personas'] = "";
  if($id == 0){
   $idInsert = $this->modelPersona->guardar($parametros);  
   $idInsert > 0? $data['personas'] = $this->modelPersona->listado() : $data['personas'] = "Ocurrio un Error Al Insertar"; 

   $this->load->view("listado", $data);
      }else{
   $idEdit = $this->modelPersona->actualizar($parametros, $id);  
   $idEdit > 0? $data['personas'] = $this->modelPersona->listado() : $data['personas'] = "Ocurrio un Error Al Editar"; 
   $this->load->view("listado", $data);
      }
 }

 public function listado(){
  $data["personas"] = $this->modelPersona->listado();
  $this->load->view("listado", $data);
 }

 public function editar($id){
  $parametro = array (
   "id" => $id
  );
  $data["persona"] =  $this->modelPersona->editar($parametro);
  $this->load->view("persona", $data);
 }

 public function eliminar($id){
  $parametro = array (
   "id" => $id
  );
  $this->modelPersona->eliminar($parametro);
  $data["personas"] = $this->modelPersona->listado();
  $this->load->view("listado", $data);
 }
 
}






Enlace de código completo: ProyectoCodeIgniter

1 comentario: