domingo, 7 de julio de 2013

Instalación y configuración de CodeIgniter

Empezamos con el Tema 1 de la creación de un carrito de compras con CodeIgniter. Hoy vamos a hacer las configuraciones mínimas para conectarnos con la base de datos y luego mostrar los registros a través de una vista.
Después de descargar CodeIgniter, lo descomprimimos en la carpeta htdocs de Xampp, lo renombramos como cart y ya podremos acceder a la instalación de CodeIgniter, verificamos escribiendo en la barra de dirección del navegador : http://localhost/cart/ Empecemos por configurar Codeigniter, los archivos que se van a modificar son: autoload.php, config.php y database.php, estos los encontramos en: cart/application/config/



En el archivo config.php, por la linea 17 definimos la base url:
$config['base_url'] = 'http://localhost/cart/';
en este mismo archivo por la linea 29 quitamos el index.php:
$config['index_page'] = '';
luego creamos un .htaccess en el directorio principal: cart/

Código de .htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /cart/index.php/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
    ErrorDocument 404 /cart/index.php
</IfModule>
así quitamos el index.php que viene incluido por defecto en la URL, de este modo para acceder a algún controlador escribimos:
http://localhost/cart/controlador/método
en lugar de:
http://localhost/cart/index.php/controlador/método
debemos tener en cuenta que para que esto funcione debe estar activado el mod_rewrite en el servidor. Pasemos ahora a definir la conexión a la base de datos, vamos a cart/application/config/ abrimos database.php y definimos las lineas 51 - 54 :
 $db['default']['hostname'] = 'localhost';
 $db['default']['username'] = 'root';
 $db['default']['password'] = '';
 $db['default']['database'] = 'cart';

Creamos la base de datos en phpmyadmin:

CREATE TABLE IF NOT EXISTS `productos` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `marca` varchar(50) COLLATE utf8_spanish_ci NOT NULL,
  `pantalla` varchar(20) COLLATE utf8_spanish_ci NOT NULL,
  `ram` varchar(50) COLLATE utf8_spanish_ci NOT NULL,
  `procesador` varchar(50) COLLATE utf8_spanish_ci NOT NULL,
  `disco_duro` varchar(20) COLLATE utf8_spanish_ci NOT NULL,
  `precio` double(11,0) NOT NULL,
  `opcion` varchar(50) COLLATE utf8_spanish_ci NOT NULL,
  `valores` varchar(200) COLLATE utf8_spanish_ci NOT NULL,
  `imagen` varchar(100) COLLATE utf8_spanish_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci AUTO_INCREMENT=8 ;

INSERT INTO `productos` (`id`, `marca`, `pantalla`, `ram`, `procesador`, `disco_duro`, `precio`, `opcion`, `valores`, `imagen`) VALUES
(1, 'Samsung', '14''', '4 Gb', 'Core i3', '300 Gb', 990000, 'color', 'blanco,verde,morado,negro', 'pc_1.jpg'),
(2, 'Lenovo', '10''', '3 Gb', 'Intel Pentium', '750 Gb', 1100000, 'color', 'negro,verde,morado,', 'pc_2.jpg'),
(3, 'Portatil Mac', '14''', '4 Gb', 'Core i3', '500 Gb', 1000000, 'color', 'blanco,verde,morado,negro', 'pc_3.jpg'),
(4, 'Compaq', '10''', '2 Gb', 'AMD', '300 Gb', 700000, 'color', 'negro,verde,morado', 'pc_4.jpg'),
(5, 'Sony Vaió', '14''', '4 Gb', 'Core i3', '500 Gb', 1000000, 'color', 'morado,negro', 'pc_5.jpg'),
(6, 'Hewlet Packart', '14''', '4 Gb', 'Core i3', '500 Gb', 990000, 'color', 'blanco,verde,morado,negro', 'hp_1.jpg'),
(7, 'Sony Vaió', '18''', '3 Gb', 'Intel Pentium', '500 Gb', 650000, '', '', '');
En: cart/application/config/ abrimos autoload.php y por la linea 55 cargamos la base de datos :
$autoload['libraries'] = array('database');
Enseguida creamos un controlador, un modelo y una vista. El modelo lo llamamos: products_model.php, al controlador: products.php y la vista: products_view.php. Dentro de: cart/application/controllers/ guardamos products.php, en cart/application/models/ creamos products_model.php y en: cart/application/views/ ubicamos products_view.php


Código del controlador products.php:

    <?php

    class Products extends CI_Controller {

    function __construct() {
    parent::__Construct();
    $this ->load->model('Products_Model'); // Cargamos el Modelo
    }

    public function index(){

    $data['title']='Computadores Portatiles';
    $data['results']= $this->Products_Model->get_products();

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

    }

    }

código del modelo products_model.php

<?php

    class Products_Model extends CI_Model {

    public function get_products(){

    $this->db->order_by('marca', 'asc');
    $query = $this->db->get('productos')->result();

    return $query;

    }
  
    }

código de la vista products_view.php

<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8" />
    <title><?php echo $title;  ?></title>
</head>  
<body>
    <h1 align="center">Registros de la Bd con Codeigniter</h1>
<h3 align="center">
<?php  foreach($results as $result) {
              
      echo $result->marca." ";
      echo $result->procesador." ";
     echo $result->disco_duro."<br>";
   
}
 ?>  
 </h3>
</body>
</html>
por último en: cart/application/config/, abrimos routes.php y en la linea 41 definimos el controlador que va a cargar por defecto. $route['default_controller'] = "products";

Descargar Archivos del Tema 1

3 comentarios :

  1. hola. puedes decirme como subir el proyecto a un hosting. he seguido el curso y va muy bien pero quiero saber como subirlo a un hosting para futuros desarrollos que realice

    ResponderBorrar
  2. Hola Javier,
    muchas gracias por el comentario.
    la verdad no me queda mucho tiempo para dedicarle al blog; voy a ver si hago un post
    sobre como subir un proyecto a un hosting, pero en todo caso en Internet se encuentran muchos tutoriales sobre esto, tambièn en youtu

    ResponderBorrar
  3. pero es cosa tomar todo y ponerlo en en public html?luego configurar la base de datos o no? y poner el url base?

    ResponderBorrar