You are on page 1of 13

allshorevirtualstaffing.

com
http://www.allshorevirtualstaffing.com/how-to-develop-basic-crud-operations-in-codeigniter/#.Ve9Zj6LhC70

Cmo desarrollar operaciones bsicas CRUD en CodeIgniter

Hoy voy a demostrar la instalacin bsica de CodeIgniter, un Marco de PHP, y un simple ejemplo de la construccin
de un CRUD (Create, Read / Recuperar, Actualizar y Eliminar) con l.

Pre-requisitos
Se supone que tiene un nivel bsico de comprensin de lo siguiente:
PHP, MySQL, programacin orientada a objetos, MVC

Instalacin
Descargar
Para trabajar con CodeIgniter, tenemos que descargar su ltima versin (2.1.4 en el momento de escribir estas
lneas) de su enlace de descarga en http://ellislab.com/codeigniter.
WAMP entorno de servidor
Se necesita un entorno con un mnimo de Apache y PHP para trabajar con CodeIgniter. Para una plataforma
Windows, pila servidor WAMP es fcilmente disponible y sus .exe puede configurar el entorno en unos pocos
segundos. Configuracin del servidor WAMP se puede descargar desde http://www.wampserver.com/en/.
Configurar
Una vez instalado el servidor WAMP, por favor descomprima el archivo descargado CodeIgniter y cambiar el nombre
de la carpeta a "cisample", que contendr las carpetas de aplicaciones, sistemas y user_guide, junto con algunos
otros archivos.
Ahora coloque esta carpeta cisample dentro carpeta C: \ WAMP \ www. Se supone que el WAMP est instalado en
su ubicacin predeterminada. Si no es as, por favor, vuelva a ajustar la ruta en consecuencia.
Configuraciones
En esta seccin, vamos a configurar los ajustes de la base de datos para ayudar a construir esta muestra CRUD
rpidamente, pero con la facilidad de uso caractersticas, reutilizacin y de seguridad. Tambin vamos a configurar

algunos otros ajustes para beneficiarse de las bibliotecas centrales de este marco.
El primer archivo de configuracin de las configuraciones es C: \ WAMP \ www \ cisample \ application \ config \
config.php.
Establezca la URL base a http: // localhost / cisample.
Eliminar "index.php" de los contenidos de esta lnea:
1

$config['index_page'] = 'index.php'

Me gusta esto:
1

$config['index_page'] = '';

Esto har que las URLs limpias.


Cules son las URL limpias?
Para entender esto nos fijamos en dos ejemplos diferentes de direcciones URL:
URL normal: http://www.example.com/page.php?id=45
URL Limpio: http://www.example.com/page/id/45
La URL normal tiene un '?' (Consulta cadena de caracteres) en la direccin URL que no es ni el usuario ni el motor
de bsqueda. Considerando que el URL Clean parece ms limpio y no es slo el usuario sino tambin los motores
de bsqueda. La otra ventaja de URLs limpias es que si el recurso que proporciona la funcionalidad de esta URL
cambia, no es necesario cambiar la direccin URL.
Para la configuracin de base de datos, en primer lugar crear una base de datos en el servidor de base de datos
MySQL. El nombre de la base de datos ser "cisample_db" (sin comillas). El nombre de host de base de datos,
nombre de usuario, contrasea y base de datos son los parmetros necesarios para establecer la conexin entre
CodeIgniter y el servidor de base de datos. Todos los ajustes relacionados con la base de datos se puede configurar
dentro de C: \ WAMP \ www \ cisample \ application \ config \ database.php.
Hay un par de opciones necesarias en C: \ WAMP \ www \ cisample \ application \ config \ autoload.php.
Para cargar la biblioteca de base de datos, cambio de $ autocarga ['bibliotecas'] = array (); a $ autocarga
['bibliotecas'] = array ('base de datos').
Para cargar la URL y formar ayudantes, el cambio $ autocarga ['ayudante'] = array (); a $ autocarga ['herper'] = array
('url', "forma").
Auto carga de bibliotecas y ayudantes hace la vida ms fcil a medida que uno no tiene que cargar las bibliotecas y
ayudantes cada uno y cada vez que se necesitan. Se cargan automticamente las configuraciones anteriores en el
archivo autoload.php.

Ejemplo de Introduccin y tabla de base de datos Estructura


Este ejemplo demostrar una sencilla CRUD Lista de tareas pendientes. Tambin usar una sencilla tabla de tres
columnas para sostener los elementos de tareas. El nombre de las columnas ser la identificacin, ttulo, y el detalle.

Es el momento de sumergirse directamente en el cdigo.


1. Inicie el entorno WAMP. 2. Crear una tabla en la base de datos con la siguiente consulta:
1

CREATE TABLE IF NOT EXISTS `todos` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`title` varchar(255) NOT NULL,

`description` text NOT NULL,

`completed` int(1) NOT NULL,

PRIMARY KEY (`id`)

3. Cree un archivo de controlador "application / controllers / todos.php" para las tareas pendientes con el siguiente
cdigo:
1

<?php

class Todos extends CI_Controller {

3
4

public function __construct()

parent::__construct();

$this->load->library('form_validation');

$this->load->model('todo_model');

10
11

public function index()

12

13

$data['title'] = 'To-Dos List';

14

$data['todos'] = $this->todo_model->get_todos();

15

$this->load->view('templates/header', $data);

16

$this->load->view('todos/index', $data);

17

$this->load->view('templates/footer');

18

19

public function view()

20

21

$id = $this->uri->segment(3);

22

if (empty($id))

23

24

show_404();

25

26

$data['title'] = 'View a To-do item';

27

$data['todo'] = $this->todo_model->get_todos($id);

28

$this->load->view('templates/header', $data);

29

$this->load->view('todos/view', $data);

30

$this->load->view('templates/footer');

31
32

33

public function create()

34

35

$data['title'] = 'Create a To-do item';

36

$this->form_validation->set_rules('title', 'Title', 'required');

37

$this->form_validation->set_rules('description', 'Description', 'required');

38

if ($this->form_validation->run() === FALSE)

39

40

$this->load->view('templates/header', $data);

41

$this->load->view('todos/create');

42

$this->load->view('templates/footer');

43

44

else

45

46

$this->todo_model->set_todos();

47

$this->load->view('todos/success');

48

49

50

public function edit()

51

52

$id = $this->uri->segment(3);

53

if (empty($id))

54

55

show_404();

56

57

$data['title'] = 'Edit a To-do item';

58

$data['todo'] = $this->todo_model->get_todos($id);

59

$this->form_validation->set_rules('title', 'Title', 'required');

60

$this->form_validation->set_rules('description', 'Description', 'required');

61

if ($this->form_validation->run() === FALSE)

62

63

$this->load->view('templates/header', $data);

64

$this->load->view('todos/edit', $data);

65

$this->load->view('templates/footer', $data);

66

67

else

68

69

$this->todo_model->set_todos($id);

70

redirect( base_url() . 'todos');

71

72

73

public function completed()

74

75

$id = $this->uri->segment(3);

76

if (empty($id))

77

78

show_404();

79

80

$this->todo_model->completed($id);

81

redirect( base_url() . 'todos');

82

83

84
85

86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
El mtodo del ndice establece el ttulo de la pgina, se carga toda la tareas pendientes del modelo y carga la vista
del ndice para mostrar la lista de todas las tareas pendientes.
El mtodo de "vista" obtiene el ID de tareas pendientes de la URL, la comprobacin para ver si el ID est vaco o no.
Si est vaco, entonces se lanza una pgina 404 u obtiene el elemento de tarea desde el modelo basado en la
identificacin y cargas "vista" de tareas para mostrar los detalles de tareas artculo.
El mtodo create presenta al usuario una forma de crear una tarea pendiente, procesa la entrada a travs de reglas
de validacin e inserta un nuevo registro en la base de datos sobre el envo de formularios.
El mtodo de edicin hace lo mismo que el mtodo de ver, excepto que carga los datos de tareas pendientes en un
formulario para editar y despus actualiza el elemento de tarea en la base de datos.

El mtodo de "completo" actualiza el registro basado en el ID pasado en la URL para completar el proceso.
4. Crear un archivo de modelo "application / modelos / todo_model.php" con el siguiente cdigo:
1

<?php

class Todo_model extends CI_Model {

3
4

public function __construct()

$this->load->database();

8
9
10

public function get_todos($id = 0)

11

12

if ($id === 0)

13

14

$query = $this->db->get_where('todos',array('completed' => 0));

15

return $query->result_array();

16

17

$query = $this->db->get_where('todos', array('id' => $id));

18

return $query->row_array();

19

20

public function set_todos($id = 0)

21

22

$this->load->helper('url');

23

$data = array(

24

'title' => $this->input->post('title'),

25

'description' => $this->input->post('description'),

26

);

27

if ($id === 0) {

28

return $this->db->insert('todos', $data);

29

30

else {

31

$this->db->where('id', $id);

32

return $this->db->update('todos', $data);

33

34

35

public function completed($id)

36

37

$data = array(

38

'completed' => 1

39

);

40
41

$this->db->where('id', $id);

42

$this->db->update('todos', $data);

43

44

45
46
47
48
49
50
51
52
53
54
55
56
57
58
El mtodo get_todos obtiene toda la tareas pendientes de la base de datos si no se pasa ningn ID, o si se pasa un
ID, se obtiene el punto primero de tareas sobre la base de ese ID.
El mtodo set_todos inserta nuevos datos en la base de datos para el almacenamiento permanente si no se pasa

ningn ID, o actualiza los datos existentes en la base de datos si se pasa un ID.
El mtodo completado marca un registro completo en la base de datos.
5. Crear los siguientes archivos de vista en su views / directorio de la aplicacin / todos / con su respectivo cdigo:
a) index.php
1

foreach ($todos as $todo): ?>

2
3

<h2> echo $todo['title'] ?></h2>

<div id="list">

5
6

echo $todo['description'] ?>


</div>

7
8

<a href=" echo base_url(); ?>todos/view/ echo $todo['id'] ?>">View</a> |

<a href=" echo base_url(); ?>todos/edit/ echo $todo['id'] ?>">Edit</a> |

10

<a href=" echo base_url(); ?>todos/completed/ echo $todo['id'] ?>">Completed</a>

11

<hr>

12

endforeach ?>

b) create.php

<h2>Create a To-do item</h2>

2
3

echo validation_errors(); ?>

4
5

echo form_open('todos/create') ?>

6
7

<label for="title">Title: </label>

<input type="input" name="title" />

9
10

<label for="text">Description: </label>

11

<textarea name="description"></textarea>

12

<input type="submit" name="submit" value="Create" />

13
14

</form>

15
c) edit.php
1

<h2>Create a To-do item</h2>

2
3

echo validation_errors(); ?>

4
5

echo form_open('todos/create') ?>

6
7

<label for="title">Title: </label>

<input type="input" name="title" />

9
10

<label for="text">Description: </label>

11

<textarea name="description"></textarea>

12

<input type="submit" name="submit" value="Create" />

13
14
15

</form>

d) view.php
1

<h2> echo $todo['title'] ?></h2>

<div id="list">

echo $todo['description'] ?>

</div>

e) Success.php
1

Data inserted

6. Inserte las siguientes lneas en su application / config / routes.php para Todos en caso de que quisiera que los de
fantasa / diferentes direcciones URL de sus recursos de la aplicacin:
1

$route['todos/create'] = 'to-dos/create';

$route['todos/view/(:any)'] = 'to-dos/view/$1';

$route['todos/edit/(:any)'] = 'to-dos/edit/$1';

$route['todos/completed/(:any)'] = 'to-dos/completed/$1';

$route['todos'] = 'to-dos';

7. Realice los siguientes cambios en su application / config / config.php para Todos:


1

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

$config['index_page'] = '';

8. Ajuste los siguientes parmetros en su application / config / database.php dependiendo de la configuracin del
servidor de bases de datos, la ma se fijan a los valores predeterminados as:
1

$db['default']['hostname'] = 'localhost';

$db['default']['username'] = 'root';

$db['default']['password'] = '';

$db['default']['database'] = 'cisample_db';

9. Crear un archivo .htaccess en el directorio cisample dentro de su directorio web raz con el siguiente cdigo de
URL como http: // localhost / cisample / Todos:
1

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php/$1 [L]

10. Ahora compruebe la configuracin del servidor web Apache para asegurarse de que est cargado el mdulo
mod_rewrite.
11. Crear cada uno de los siguientes archivos en el directorio application / views / plantillas con su respectivo cdigo
de plantilla:
a) header.php
1

<html>

<head>

<title> echo $title ?> - CodeIgniter Sample</title>

label{width:75px; display:inline-block}

</head>

<body>

<h1 align="center">CodeIgniter Sample Site</h1>

b) footer.php
1

<strong>

echo date('Y'); ?>

</strong>

</body>

</html>

12. Carga tu lista de Todos con http: // localhost / cisample / todos.


Haciendo un CRUD utilizando CodeIgniter es a la vez fcil y ms divertido de lo que parece. CRUD es el primer
paso en el aprendizaje de cualquier nueva tecnologa cuando se trata de bases de datos. Puede pasar de aqu para
explorar ms reas y ser ms cmodo con CodeIgniter. Usted encontrar las reas de CodeIgniter tan fcil como
este tutorial. Feliz CodeIgniting!
Las dos fichas siguientes cambian el contenido a continuacin.
Bio
ltimos mensajes

Khurram K.
PHP Team Lead en Allshore Staffing virtual
Somos una empresa de colaboracin en Allshore Staffing virtual, y alentamos a nuestros empleados
a contribuir con contenido como this.Allshore es una agencia de personal remoto ayudando nuevas
empresas en los EE.UU. contratar ingenieros de software a distancia para trabajar como empleados
de tiempo completo. Allshore ofrece todo el apoyo tcnico y de gestin a travs de nuestros servicios a los clientes y
los equipos de tecnologa de tutora basada en Norman, Oklahoma. Contacto Allshore hoy para programar una
llamada de consulta gratuita con un especialista en la dotacin de personal a distancia o solicitar una prueba gratuita

de nuestros servicios.

You might also like