Ticker

6/recent/ticker-posts

PHP y MySQL - Aplicación Web CRUD con CodeIgniter

Articulo en edición:

Hola espero estén super bien, en este tutorial práctico desarrollaremos una Aplicación Web CRUD haciendo uso del Framework PHP como es CodeIgniter, se implementará haciendo uso de la versión 3 de CodeIgniter con bases de datos relacional como es MySQL.

Requisitos:

  1. XAMPP Control Panel.
  2. MySQL Workbench o phpMyAdmin.
  3. Visual Studio Code
  4. CodeIgniter v3 (Framework PHP)
  5. Bootstrap 5 (HTML5 y CSS3)

Lo que veremos en este tutorial:

  1. Descargar CodeIgniter v3.
  2. Crear la base de datos en MySQL.
  3. Configurar archivos de la aplicación.
  4. Crear e implementar modelo.
  5. Crear e implementar vistas.
  6. Crear e implementar controlador.
  7. Conclusiones.

1. Descargar CodeIgniter v3.

Para la descarga del Framework CodeIgniter, sugiero descargar desde la pagina oficial; para este tutorial práctico se hará uso de la versión 3.1.11.

Seguidamente se debe descomprimir el archivo y copiar los archivos en el directorio final donde se iniciará la implementación, en mi caso el directorio final es crud-app-web.

Recuerda que debes levantar los servicios de Apache y MySQL desde el XAMPP Control Panel y el directorio final del proyecto debe estar creado en el htdocs.


2. Crear la base de datos en MySQL.

Crea la base de datos con el nombre de demo desde el Workbench o phpMyAdmin, seguidamente crea la tabla employee con la siguiente estructura:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
--
-- Estructura de tabla para la tabla `employee`
--

CREATE TABLE `employee` (
  `id` int(11) NOT NULL,
  `first_name` varchar(255) NOT NULL,
  `last_name` varchar(255) NOT NULL,
  `gender` varchar(255) NOT NULL,
  `age` int(2) NOT NULL,
  `email_id` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- PRIMARY KEY de la tabla `employee`
--
ALTER TABLE `employee`
  ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT de la tabla `employee`
--
ALTER TABLE `employee`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;

3. Configurar archivos de la aplicación.

Después de crear la base de datos, seguidamente pasamos a configurar los archivos en relación al ecosistema del Framework CodeIgniter:

3.1. Se agregará la url base de nuestro proyecto en el archivo config.php:

    ..\crud-app-web\application\config\config.php
    $config['base_url'] = 'http://localhost/crud-app-web/';

3.2. Asignar los valores de conexión a la base de datos en relación a los CONTROLADORES para la conexión a MySQL desde el archivo database.php:

    ..\crud-app-web\application\config\database.php
    'hostname' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'demo',
    'dbdriver' => 'mysqli',

3.3. Asignar el controlador inicial por defecto desde el archivo routes.php:

    ..\crud-app-web\application\config\routes.php
    $route['default_controller'] = 'crud';

Recuerden que nuestro directorio crud-app-web debe estar creada dentro del directorio htdocs (..\xampp\htdocs) en relación a nuestro servidor web Apache que nos proporciona XAMPP.

4. Crear e implementar modelo.

Crear el modelo de nombre Crud_model.php en el directorio models de nuestro proyecto crud-app-web\application\models e implementar las funciones necesarias para el acceso a datos y realizar la funcionalidad CRUD:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php

class Crud_model extends CI_Model{
	/* Constuct access database */
	public function __construct(){
		parent::__construct();
		$this->load->database();
	}

    /* Function: insert (create) data on the table employee */
    public function create($first,$last,$email,$gender,$age){
        $query = $this->db->query("insert into employee (first_name,last_name,gender,age,email_id) 
                                    values('$first','$last','$gender','$age','$email')");
            if($query){
                return "success";
            }else{
                return "failed";
            }
    }
    /* Function: select (read) all row or data from table employee */
    public function read(){ 
        $query = $this->db->query("SELECT case e.gender 
                                    WHEN 'm' THEN 'Masculino' 
                                    WHEN 'f' THEN 'Femenino' 
                                    END as gend, e.* FROM employee e;");
        return $query;
    }
    /* Function: select (get_record_byID) record by employee id from table employee */
    public function get_record_byID($id){
        $query = $this->db->query("select * from employee where id='$id'");
        return $query->row();
    }

    /* Funtion: update record by employee id from table employee */
    public function update($first,$last,$email,$gender,$age,$id){
		$query = $this->db->query("UPDATE `employee` SET first_name='$first', last_name='$last',
                                            email_id='$email', gender='$gender', age=$age WHERE id=$id");
	
		if($query){
			return "success";
		}else{
			return "failed";
		}
	}
    /* Funtion: delete row by employee id */
    public function delete($id){
        $query = $this->db->query("delete from employee where id ='$id'");
        if($query){
            return "success";
        }else{
            return "failed";
        }
    }

}

Los modelos son clases que están diseñadas para trabajar con información en relación a la base de datos.

5. Crear e implementar vistas.

6. Crear e implementar controlador.

Crear el controlador de nombre Crud.php en el directorio controllers de nuestro proyecto crud-app-web\application\controllers:

Implementar las funciones necesarias para cumplir con la lógica de nuestra funcionalidad CRUD:

Un controlador (controller) simplemente es un archivo de tipo clase cuyo nombre se asociar con una URI determinada.

7. Conclusiones

.

Disponible en GitHub


Gracias nuevamente 😊; comentarios y apreciaciones son bienvenido, un fuerte abrazo para todos ✌...!!!

Publicar un comentario

0 Comentarios