Pasos CodeIgnater
Pasos CodeIgnater
cd xampp/htdocs/guia04_ACCESO_A_DATOS
code .
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'estudiantes',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
Los datos más importantes para nuestro caso son hostname, username, password, y
database. Estos datos dependerán de cada caso, para el nuestro aplica sin problemas.
CONFIGURANDO LA URL BASE.
Accedemos al archivo llamado config.php de la carpeta config, y modificamos el índice
base_url, y nos debe quedar así:
$config['base_url'] = 'http://localhost/guia04
_ACCESO_A_DATOS/';
MOVILES página 1
_ACCESO_A_DATOS/';
Donde guia4 es el nombre de nuestra aplicación. Dependerá de cada caso, así se definirá esa
sección.
CARGANDO LA CONEXIÓN A LA BD EN TODA LA APLICACIÓN.
Para ello accedemos al archivo autoload.php de la carpeta config, modificamos el índice
libraries y nos debe quedar así:
$autoload['libraries'] = array("database");
<?php
defined('BASEPATH') or exit('No direct script access allowed
');
class EstudiantesModel extends CI_Model
{
public function construct()
{
parent::__construct();
}
public function getAll()
{
$query = $this->db->get("estudiantes");
$records = $query->result();
return $records;
}
public function insert($data)
{
$this->db->insert("estudiantes", $data);
$rows = $this->db->affected_rows();
return $rows;
}
public function delete($id)
{
if ($this->db->
delete("estudiantes", "idestudiante='" . $id . "'")) {
return true;
}
}
public function getById($id)
MOVILES página 2
public function getById($id)
{
return $this->db->
get_where("estudiantes", array("idestudiante" => $id))->
row();
}
public function update($data, $id)
{
$this->db->set($data);
$this->db->where("idestudiante", $id);
$this->db->update("estudiantes", $data);
$rows = $this->db->affected_rows();
return $rows;
}
}
<?php
defined('BASEPATH') or exit('No direct script access allowed
');
class Carrera_model extends CI_Model
{
public function __construct()
{
parent:: __construct();
}
public function getAll()
{
$query = $this->db->get("carreras");
$records = $query->result();
return $records;
}
}
MOVILES página 4
// FUNCIONES QUE REALIZAN OPERACIONES
public function add()
{
$this->load->model('Estudiante_model');
$data = array(
"idestudiante" => $this->input->
post("idestudiante"),
"nombre" => $this->input->post("nombre"),
"apellido" => $this->input->post("apellido"),
"email" => $this->input->post("email"),
"usuario" => $this->input->post("usuario"),
"idcarrera" => $this->input->post("idcarrera"),
);
$rows = $this->Estudiante_model->insert($data);
if ($rows > 0) {
$this->session->
set_flashdata('success', "Información guardada correctamente
.");
} else {
$this->session->
set_flashdata('error', "No se guardó la información.");
}
redirect("estudiantes/insertar");
}
public function update()
{
$this->load->model('Estudiante_model');
$data = array(
"idestudiante" => $this->input->
post("idestudiante"),
"nombre" => $this->input->post("nombre"),
"apellido" => $this->input->post("apellido"),
"email" => $this->input->post("email"),
"usuario" => $this->input->post("usuario"),
"idcarrera" => $this->input->post("idcarrera"),
);
try {
$rows = $this->Estudiante_model->
update($data, $data["idestudiante"]);
$this->session->
set_flashdata('success', "Información modificada correctamen
te.");
} catch (Exception $e) {
$this->session->
set_flashdata('error', "No se guardó la información.");
} finally {
redirect("estudiantes/modificar/" . $data["idest
udiante"]);
}
MOVILES página 5
}
}
public function eliminar($id)
{
$this->load->model('Estudiante_model');
$result = $this->Estudiante_model->delete($id);
if ($result) {
$this->session->
set_flashdata('success', "Registro borrado correctamente.");
} else {
$this->session->
set_flashdata('error', "No se pudo borrar el registro.");
}
//redirect("estudiantesController");
redirect("estudiantes");
}/*
public function modificar($id)
{
$this->load->model('Carrera_model');
$this->load->model('Estudiante_model');
$estudiante = $this->Estudiante_model->getById($id);
$data = array(
"carreras" => $this->Carrera_model->getAll(),
"estudiante" => $estudiante,
);
$this->load->view("estudiantes/add_edit", $data);
}*/
}
Explicación:
En el constructor cargamos los el helper url, para acceder a la URL Base y del site, y también
cargamos la librería de session, así:
$this->load->helper('url');
$this->load->library('session');
Es importante que antes de usar un modelo, sea cargado así, por ejemplo:
Para obtener la información de una petición post, se accede así, por ejemplo:
Cuando se requiere mandar un mensaje que sólo debe durar una petición, como por ejemplo
para indicar que la operación fue exitosa o hubo un error, se debe almacenar dicha información
en una sesión flash, así:
MOVILES página 6
Para redireccionar se usa el siguiente método:
redirect("estudiantes/insertar");
CREACIÓN DE LA VISTA.
Procedemos a crear dos carpetas en el directorio raíz de nuestra aplicación, serán las carpetas
css, y js. Debe quedarnos así:
Luego en la carpeta views creamos una carpeta llamada estudiantes, y a esta carpeta
agregamos dos archivos, el index.php, y el archivo add_edit.php.
Los cuales deben quedarnos así:
index.php
MOVILES página 7