Sei sulla pagina 1di 8

CRUD (mantenimiento bsico de una tabla)

con CodeIgniter!
copypastereference.wordpress.com /2012/03/07/crud-mantenimiento-basico-de-una-tabla-concodeigniter/
Tutorial Android; Accelerometro.
Enviar un mail desde Java
Saludos. Me estreno con este tutorial paso a paso de un pequeo mantenimiento de una tabla utilizando
el Framework de PHP CodeIgniter. Sin ms demora, vamos a ello.

REQUISITOS
1. Descargar e instalar XAMPP
2. Descargar CodeIgniter

TIEMPO ESTIMADO
El tiempo estimado para la realizacin de este tutorial es de 45min / 01:15 horas.

TUTORIAL PASO A PASO


PASO 1 Instalacin CodeIgniter
Una vez descargado e instalado XAMPP, nos dirigiremos a la ruta C:\xampp\htdocs\ y crearemos una
carpeta llamada CRUD.
Dentro de esa carpeta, descomprimiremos el contenido del archivo .rar / .zip de CodeIgniter.
Listo! Ya tenemos CodeIgniter instalado.

PASO 2 Configuracin
PASO 2.1 Creando la Base de Datos.
1. Abrimos el navegador y nos dirigimos a http://localhost/xampp/, creamos una base de datos que
se llame CPRCRUD (Copy Paste Reference CRUD).
2. En la base de datos que acabamos de crear, insertamos esta pequea tabla:

CREATE TABLE `cprcrud`.`Contacto` (


`idContacto` INT NOT NULL AUTO_INCREMENT ,
`Nombre` VARCHAR(45) NULL ,
`Telefono` VARCHAR(45) NULL ,
`Email` VARCHAR(45) NULL ,
`Direccion` VARCHAR(45) NULL ,
PRIMARY KEY (`idContacto`) );
INSERT INTO `cprcrud`.`contacto(`Nombre`,`Telefono`,`Email`,Direccion`) VALUES
('Ned Stark', '987654321', 'ned@invernalia.com', 'Invernalia');
INSERT INTO `cprcrud`.`contacto` (`Nombre`, `Telefono`, `Email`, `Direccion`)
VALUES ('Robb Stark', '987654321', 'robb@invernalia.com', 'Invernalia' );
INSERT INTO `cprcrud`.`contacto` (`Nombre`, `Telefono`, `Email`, `Direccion`)
VALUES ('Tyrion Lannister', '887996354', 'tyrion@rocacasterly.com', 'Roca
Casterly' );
INSERT INTO `cprcrud`.`contacto` (`Nombre`, `Telefono`, `Email`, `Direccion`)
VALUES ('Jaime Lannister', '887996354', 'jaime@rocacasterly.com', 'Roca
Casterly' );
INSERT INTO `cprcrud`.`contacto` (`Nombre`, `Telefono`, `Email`, `Direccion`)
VALUES ('Rhaegar Targaryen', '887996354', 'rhaegar@targaryen.com', 'Desembarco
del Rey' );

PASO 2.2 Vincular CodeIgniter con la Base de Datos.


Una vez creada la tabla, nos dirigimos a C:\xampp\htdocs\CRUD\application\config y editamos el
archivo llamado database.php.
Realizamos los siguientes cambios:
$db['default']['hostname']
Servidor
$db['default']['username']
$db['default']['password']
$db['default']['database']
$db['default']['dbdriver']

= 'localhost'; // <-- Nombre del


=
=
=
=

'root'; // <-- Usuario


''; // <-- Contrasea
'cprcrud'; // <-- Base de Datos
'mysql';

PASO 3 Creando el Modelo.


Nos dirigimos a C:\xampp\htdocs\CRUD\application\models y creamos un archivo llamado
mantenimiento_model.php.
El contenido del archivo, por ahora, ser el siguiente:

<?php
class Mantenimiento_model extends CI_Model {
function Mantenimiento_model() {
parent::__construct(); //llamada al constructor de Model.
}
function getData() {
$usuarios = $this->db->get('contacto'); //obtenemos la tabla 'contacto'. db>get('nombre_tabla') equivale a SELECT * FROM nombre_tabla.
return $usuarios->result(); //devolvemos el resultado de lanzar la query.
}
}
?>

PASO 4 Creando el Controlador.


Nos dirigimos a C:\xampp\htdocs\CRUD\application\controllers y creamos un archivo que se llame
mantenimiento.php.
El contenido del archivo, por ahora, ser el siguiente:
<?php
class Mantenimiento extends CI_Controller {
public function __construct() {
parent::__construct();
}
function index() {
$this->load->model('mantenimiento_model'); //cargamos el modelo
$data['page_title'] = "Copy Paste Reference! - Tutorial CodeIgniter";
//Obtener datos de la tabla 'contacto'
$usuarios = $this->mantenimiento_model->getData(); //llamamos a la funcin
getData() del modelo creado anteriormente.
$data['usuarios'] = $usuarios;
//load de vistas
$this->load->view('mantenimiento_view', $data); //llamada a la vista, que
crearemos posteriormente
}
}
?>

PASO 5 Creando la Vista.


Nos dirigimos a C:\xampp\htdocs\CRUD\application\views y creamos el archivo
mantenimiento_view.php.
El contenido ser el siguente:

<html>
<head>
<title><?=$page_title?></title>
</head>
<body>
<form name="tabla" action="" method="POST">
<table border="solid">
<thead>
<tr>
<th></th>
<th>Nombre</th>
<th>Telefono</th>
<th>Email</th>
<th>Direccion</th>
</tr>
</thead>
<tbody>
<?php foreach ($usuarios as $u):?>
<tr>
<td><input type="radio" name="editar" value="<?=$u->idContacto?>"/>
</td>
<td><?=$u->Nombre?></td>
<td><?=$u->Telefono?></td>
<td><?=$u->Email?></td>
<td><?=$u->Direccion?></td>
</tr>
<?php endforeach;?>
</tbody>
</table>
<input type="submit" value="Editar" />
</form>
</body>
</html>

PASO 6 Visualizacin de la Tabla.


Una vez realizados estos pasos, abrimos el navegador y nos dirigimos a
http://localhost/crud/index.php/mantenimiento.
Deberamos poder visualizar el contenido de la tabla.

PASO 7 Alta.
En nuestra vista, agregamos el siguiente contenido:

<p></p>
<form name="alta" action="http://localhost/crud/index.php/mantenimiento/alta"
method="POST">
<table>
<tr>
<td>Nombre</td>
<td><input type="text" name="txtNombre" /></td>
</tr>
<tr>
<td>Telefono</td>
<td><input type="text" name="txtTelefono" /></td>
</tr>
<tr>
<td>Email</td>
<td><input type="text" name="txtEmail" /></td>
</tr>
<tr>
<td>Direccion</td>
<td><input type="text" name="txtDireccion" /></td>
</tr>
</table>
<input type="submit" value="Alta"/>
</form>
En nuestro controlador agregamos la siguiente funcin:
function alta() {
//recogemos los datos obtenidos por POST
$data['nombre'] = $_POST['txtNombre'];
$data['email'] = $_POST['txtEmail'];
$data['telefono'] = $_POST['txtTelefono'];
$data['direccion'] = $_POST['txtDireccion'];
//llamamos al modelo, concretamente a la funcin insert() para que nos haga
el insert en la base de datos.
$this->load->model('mantenimiento_model');
$this->mantenimiento_model->insert($data);
//volvemos a visualizar la tabla
$this->index();
}
En nuestro modelo agregamos la siguiente funcin:
function insert($data) {
$this->db->set('Nombre', $data['nombre']);
$this->db->set('Email', $data['email']);
$this->db->set('Telefono', $data['telefono']);
$this->db->set('Direccion',
$data['direccion']);
$this->db->insert('contacto');
}
A estas alturas, deberamos poder insertar registros desde la vista.

PASO 8 Baja.
En nuestra vista, agregamos el siguiente formulario para realizar la baja:
<p>BAJA</p>
<form name="alta" action="http://localhost/crud/index.php/mantenimiento/baja"
method="POST">
<table>
<tr>
<td>Nombre: </td><td><input name="txtNombre" type="text"/></td>
</tr>
</table>
<input type="submit" value="Borrar" />
</form>
Agregamos la funcin baja a nuestro controlador:
function baja() {
//obtenemos el nombre
$nombre = $_POST['txtNombre'];
//cargamos el modelo y llamamos a la funcin baja(), pasndole el nombre del
registro que queremos borrar.
$this->load->model('mantenimiento_model');
$this->mantenimiento_model->baja($nombre);
//mostramos la vista de nuevo.
$this->index();
}
Y agregamos la siguiente funcin al modelo:
function baja ($nombre) {
$this->db->where('Nombre',
$nombre);
$this->db->delete('contacto');
}
Ahora deberamos poder borrar registros utilizando, de nuestra vista, el formulario baja.

PASO 9 Modificacin.
Primero, en nuestro formulario tabla (dentro de la vista, el primer formulario que hemos creado), le
agregamos el action que, hasta ahora, ha estado vaco.
<form name="tabla"
action="http://localhost/crud/index.php/mantenimiento/accion" method="POST">
Hecho esto, dentro del controlador agregaremos la funcin accion y editar:

function accion() {
//cargamos el modelo y obtenemos la informacin del contacto seleccionado.
$this->load->model('mantenimiento_model');
$data['usuario'] = $this->mantenimiento_model>obtenerContacto($_POST['editar']);
//cargamos la vista para editar la informacin, pasandole dicha informacin.
$this->load->view('edit', $data);
}
function editar() {
//recogemos los datos por POST
$data['id'] = $_POST['id'];
$data['nombre'] = $_POST['txtNombre'];
$data['email'] = $_POST['txtEmail'];
$data['telefono'] = $_POST['txtTelefono'];
$data['direccion'] = $_POST['txtDireccion'];
//cargamos el modelo y llamamos a la funcin update()
$this->load->model('mantenimiento_model');
$this->mantenimiento_model->update($data);
//volvemos a cargar la primera vista
$this->index();
}
Agregamos al modelo la funcion obtenerContacto:
function obtenerContacto($idContacto) {
$this->db->select('Nombre, Email, Telefono, Direccion,
idContacto');
$this->db->from('contacto');
$this->db->where('idContacto = ' . $idContacto);
$contacto = $this->db->get();
return $contacto->result();
}
A continuacin, crearemos una nueva vista con el nombre edit.php. Su contenido ser el siguiente:

<html>
<head>
<title><?=$page_title?></title>
</head>
<body>
<form name="editar"
action="http://localhost/crud/index.php/mantenimiento/editar" method="POST">
<table>
<tr>
<td>Nombre: </td><td><input name="txtNombre" value="<?=$usuario[0]->Nombre?>"
type="text"/></td>
</tr>
<tr>
<td>Email: </td><td><input name="txtEmail" value="<?=$usuario[0]->Email?>"
type="text"/></td>
</tr>
<tr>
<td>Telefono: </td><td><input name="txtTelefono" value="<?=$usuario[0]>Telefono?>" type="text"/></td>
</tr>
<tr>
<td>Direccion: </td><td><input name="txtDireccion" value="<?=$usuario[0]>Direccion?>" type="text"/></td>
</tr>
</table>
<input type="hidden" name="id" value="<?=$usuario[0]->idContacto?>"/>
<input type="submit" value="Editar" />
</form>
</body>
</html>
Por ltimo, al modelo le agregamos la siguiente funcin:
function update($data) {
$this->db->set('Nombre', $data['nombre']);
$this->db->set('Email', $data['email']);
$this->db->set('Telefono', $data['telefono']);
$this->db->set('Direccion',
$data['direccion']);
$this->db->where('idContacto', $data['id']);
$this->db->update('contacto');
}
Una vez hecho todo esto, ya podramos poder hacer el mantenimiento bsico de una tabla.

Potrebbero piacerti anche