Sei sulla pagina 1di 12

Cmo realizar un CRUD sencillo en

PHP y CodeIgniter desde cero?


Primero que nada, Qu significa CRUD?
CRUD es una aplicacin que esta encargada de crear, leer, actualizar y eliminar registros en
una base de datos, y de ah CRUD (por sus siglas en Ingls).
Ahora supongamos que somos una empresa desarrolladora de software y un cliente necesita
una pequea aplicacin para actualizar inventarios de los productos que vende, pero quiere
poder hacerlo desde cualquier parte, o sea necesita una aplicacin web.
Necesitamos algunas herramientas para poder desarrollar esta pequea aplicacin pero qu
necesitamos? simple, no lo pens dos veces y decid lo siguiente.

PHP

MySQL

CodeIgniter

Grocery CRUD

Como nota extra, yo en la elaboracin de este tutorial utilice el editor Sublime Text, ya que me
da la opcin de abrir y gestionar proyectos.
Bien quiero suponer que tenemos instalado un servidor Apache y MySQL, si no pueden leer el
siguiente Articulo.
Ahora necesitamos descargar la versin ms actualizada de CodeIgniter (en este caso ser
2.1.2)desde el siguiente enlace:
http://codeigniter.com/
Una vez descargado copiamos el archivo al directorio htdocs y despus lo descomprimimos;
podemos observar que se extrae CodeIgniter y crea una carpeta, renombramos esa carpeta
comocrud.

Ahora tenemos CodeIgniter instalado y listo para utilizarse, podemos comprobar que hasta
ahorita todo funciona correctamente yendo a la siguiente direccin: http://localhost/crud/.
Si muestra una pantalla como la siguiente, podemos seguir adelante.

Ahora tenemos que crear una base de datos y una tabla donde podremos guardar la
informacin necesaria para la administracin de inventarios.
Para hacer eso necesitamos realizar los siguientes pasos:
1. Ir a la direccion http://localhost/phpmyadmin.
2. Crear una nueva base de datos llamada crud_db.

3. Ingresamos a la base creada desde el panel de la izquierda.

4. Creamos una tabla llamda productos y agreamos 7 campos.

5. Empezamos a aadir los campos necesarios, en este ejemplo crearemos una pequea
tabla con lo siguiente:

id tipo entero (debe ser llave primaria y autoincrementable)

proveedor tipo varchar con una longitud de 50 caracteres.

nombre tipo varchar con una longitud de 128 caracteres.

descripcion tipo varchar con una longitud de 250 caracteres.

precio_compra tipo float

precio venta tipo float

exitencia tipo int

Para hacer llave primaria y autoincrementable el campo id de la tabla es necesario seleccionar


de la lista despegable la opcin PRIMARY y activar el checkbox A_I.

6. Le damos clic en guardar y ya tendremos nuestra base de datos lista para comenzar a
meterle informacin.

Bien, ya con esto podemos comenzar a configurar y preparar CodeIgniter para poder
desarrollar nuestra aplicacin.
Ahora abrimos nuestra carpeta crud y tendr la siguiente estructura:

Nosotros tenemos que modificar dos archivos antes de continuar, primero abrimos el
archivo /crud/application/config/config.php.
Y complementamos la informacin que falta para que quede as:

1 $config['base_url'] = 'http://localhost/crud';

De esta forma le decimos que la url base de nuestra aplicacin sera http://localhost/crud/.
Una vez realizado esto, necesitamos conectar la base de datos, para ello abrimos el
archivo /crud/application/config/database.php y complementamos lo siguiente.

1 $db['default']['hostname'] = 'localhost';
2 $db['default']['username'] = 'root';
3 $db['default']['password'] = 'root';
4 $db['default']['database'] = 'crud_db';

Aqu lo que hicimos fue conectar la base de datos previamente creada a nuestra aplicacin.

Ahora vamos a definir una ruta principal, para ello editamos el


archivo /crud/application/config/routes.php de tal forma que tiene que quedar as.

1 $route['default_controller'] = "productos";

Teniendo todo configurado ahora estamos listos para instalar Grocery Crud, tenemos que
descargar la ultima versin del siguiente enlace:
http://www.grocerycrud.com/downloads
Una vez descargada descomprimimos el archivo y quedara algo como esto.

Y despus haremos lo siguiente:


1. Copiamos la carpeta /assets a nuestra carpeta /crud/.
2. De la carpeta de grocery ingresamos /application/config y
copiamos grocery_crud.php a la carpeta /crud/application/config/.
3. De la carpeta /application/libraries copiamos los dos archivos a la
carpeta/crud/application/libreries/.
4. Y finalmente copiamos grocery_crud_model.php de la
carpeta /application/models a la carpeta /crud/application/models/.

Ahora que hemos copiado los archivos necesarios, debemos de crear 2 archivos ms para
que la aplicacin funcione.

Controlador: se encargar de cargar la librera y generar las reglas necesarias para


crear el CRUD.

Vista: Dara el formato de salida necesario.

En la carpeta /crud/application/controllers/ necesitamos crear un archivo nuevo y llamarlo


productos.php, a este le agregamos el siguiente cdigo:

1 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');


2
3 /* Heredamos de la clase CI_Controller */
4 class Productos extends CI_Controller {
5
6 function __construct()
7 {
8
9
parent::__construct();
1
0
/* Cargamos la base de datos */
1
$this->load->database();
1
1
/* Cargamos la libreria*/
2
$this->load->library('grocery_crud');
1
3
/* Aadimos el helper al controlador */
1
$this->load->helper('url');
4 }
1
5 function index()
1 {
6
/*
1
* Mandamos todo lo que llegue a la funcion
7
* administracion().
1
**/
8
redirect('productos/administracion');
1 }
9
2 /*
0 *
2 **/
1 function administracion()
2 {
2
try{
2
3
/* Creamos el objeto */
2
$crud = new grocery_CRUD();
4
2
/* Seleccionamos el tema */

5
$crud->set_theme('flexigrid');
2
6
/* Seleccionmos el nombre de la tabla de nuestra base de datos*/
2
$crud->set_table('productos');
7
2
/* Le asignamos un nombre */
8
$crud->set_subject('Productos');
2
9
/* Asignamos el idioma espaol */
3
$crud->set_language('spanish');
0
3
/* Aqui le decimos a grocery que estos campos son obligatorios */
1
$crud->required_fields(
3
'id',
2
'nombre',
3
'descripcion',
3
'precio_venta',
3
'existencia'
4
);
3
5
/* Aqui le indicamos que campos deseamos mostrar */
3
$crud->columns(
6
'id',
3
'proveedor',
7
'nombre',
3
'descripcion',
8
'precio_compra',
3
'precio_venta',
9
'existencia'
4
);
0
4
/* Generamos la tabla */
1
$output = $crud->render();
4
2
/* La cargamos en la vista situada en
4
/applications/views/productos/administracion.php */
3
$this->load->view('productos/administracion', $output);
4
4
}catch(Exception $e){
4
/* Si algo sale mal cachamos el error y lo mostramos */
5
show_error($e->getMessage().' --- '.$e->getTraceAsString());
4
}
6 }
4 }
7
4
8
4
9
5
0
5
1
5
2
5
3
5
4
5
5

5
6
5
7
5
8
5
9
6
0
6
1
6
2
6
3
6
4
6
5
6
6
6
7
6
8
6
9
7
0
7
1
7
2
7
3
7
4
7
5
7
6
7
7
7
8
7
9
8
0
8
1
8
2
8
3
8
4

Despus en la carpeta /crud/aplications/views/ creamos una carpeta llamada productos


y all creamos un archivo llamado administracion.php, la ruta final
ser /crud/aplications/views/productos/administracion.php y agregamos el siguiente cdigo:

1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Administracion Productos - Sourcezilla</title>
<?php
foreach($css_files as $file): ?>
<link type="text/css" rel="stylesheet" href="<?php echo $file; ?>" />
<?php endforeach; ?>
<?php foreach($js_files as $file): ?>
<script src="<?php echo $file; ?>"></script>
<?php endforeach; ?>
<style type='text/css'>
body
{
font-family: Arial;
font-size: 14px;
}
a{
color: blue;
text-decoration: none;
font-size: 14px;
}
a:hover
{
text-decoration: underline;
}
</style>
</head>
<body>
<h1>Administracin de Productos</h1>
<div>
<?php echo $output; ?>
</div>
</body>
</html>

9
3
0
3
1
3
2
3
3
3
4
3
5
3
6

Con esto ya tendremos una pequea aplicacin para el manejo de inventarios desde una
plataforma web, aunque el proyecto es muy bsico ustedes pueden complementarlo con
muchas cosas ms.
Dejo unas capturas finales.

Descarga los archivos del tutorial aqu

Potrebbero piacerti anche