banco de dados

#6 Curso CodeIgniter – Dados do banco para a view

Modificando o Controller Index

Vamos modificar a nossa função Index() na Controller (application/controllers/home.php) para ter as chamadas adicionais de View’s, sendo que a primeira linha dentro da função  faz uma consulta no banco retornando os valores referente a ela.

public function index(){
$data['categorias'] = $this->db->get('categorias')->result();
$this->load->view('html_header');
$this->load->view('cabecalho');
$this->load->view('menu_categorias', $data);
$this->load->view('conteudo');
$this->load->view('rodape');
$this->load->view('html_footer');
}

Criando várias Views

Como temos as chamadas, temos que criar os arquivos referentes dentro da pasta application/views, como por exemplo o primeiro já existe o html_header.php, então criaremos cabecalho.php, menu_categorias.php, conteudo.php, rodape.php e html_footer.php. Há ainda o arquivo home.php que sobrou, podemos excluir ele.

 

Conteúdo da segunda View

Abra o arquivo menu_categorias.php e adicione o seguinte código.

<h2>Menu de Categorias</h2>
<pre> <?php print_r($categorias); ?> </pre>

 

Dados na tabela categorias

Na tabela categorias vamos inserir duas linhas como na imagem.

Tabela de categorias no banco de dados

 

Resultado

Podemos assim abrir a URL do projeto para conferir como ficou. Na tela exibirá as duas categorias com suas respectivas informações, em forma de array. Note que ele retorna como se estivéssemos fazendo uma laço para consultar o banco linha por linha, não precisamos fazer esse “laço” pois o próprio framework se encarregou de fazer isso.

#5 Curso CodeIgniter – Banco de Dados

Criando o banco de dados

Vamos criar um sistema para suas anotações nesse primeiro sistema, para isso iremos criar um banco de dados que ira conter imagens, anotações, a categoria a qual pertence, o slug da mesma, dentre outras informações. Iremos fazer uma ligação entre as tabelas através do ID de cada anotação gravada, terá também uma gravação automática da data que a anotação foi gravada.

Começaremos criando um banco no PhpMyAdmin ou em outro software de sua escolha que proponha a conexão com bando de dados de seu servidor local.

 

Primeiro passo

Esse banco deverá ser utf8_general_ci, se chamara anotacoes.

 

Segundo passo

Agora devemos criar as tabelas, a primeira ira ser a categorias, para isso basta executar o comando SQL:

 

CREATE TABLE anotacoes.categorias(

   id_categoria INTEGER UNSIGNED  AUTO_INCREMENT NOT NULL,

   categoria VARCHAR(45) NOT NULL,

   slug_categoria VARCHAR(255) NOT NULL,

PRIMARY KEY (id_categoria)

) ENGINE = InnoDB;

 

O tipo varchar especifica o total máximo de caracteres aceitos, e o valor auto_increment significa que ele vai ser acrescentado automaticamente ao adicionar mais uma linha na tabela. Se preferir pode criar manualmente a tabela desde que ela seja da seguinte maneira.

  • id_categoria – Inteiro, auto incremento.
  • categoria – Até 45 caracteres de texto.
  • slug_categoria – Até 255 caracteres de texto.

Terceiro passo

A próxima tabela a ser criada vai ser  a tabela de anotações que se chamara anotacoes, iremos executar o seguinte código:

 

DROP TABLE IF EXISTS anotacoes.anotacoes;

CREATE TABLE anotacoes.anotacoes (

id_anotacao int unsigned AUTO_INCREMENT PRIMARY KEY NOT NULL,

nome VARCHAR(255) NOT NULL,

slug_anotacao VARCHAR(255) NOT NULL,

texto TEXT NOT NULL,

categoria int UNSIGNED NOT NULL,

foto VARCHAR(45) DEFAULT NULL,

data TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,

KEY FK_anotacoes_categoria (categoria),

CONSTRAINT FK_anotacoes_categoria FOREIGN KEY (categoria)

REFERENCES categorias (id_categoria) ON UPDATE CASCADE

) ENGINE = InnoDB;

Após ter criado essa segunda table, agora temos que configurar os arquivos para conectar com o banco de dados.

 

Quarto passo

Vamos habilitar a biblioteca database, para possibilitar a comunicação com o banco. Aba o arquivo:

config/autoload.php

 

Após abrir o arquivo edite a linha 55 para ficar igual a essa:

$autoload[‘libraries’] = array(‘database’);

 

Quinto passo

Na mesma pasta haverá outro arquivo chamado database.php no fim dele você poderá editar as configurações de conexão, no meu caso o usuário do banco de dados e senha são respectivamente:

  • rafael
  • 123456

Sendo assim você configurará de acordo com seus dados de acesso, as informações desse arquivo.

 

Exemplo:

Segue apenas o final do código, que é a parte referente a conexão que você configurará.

 

$db[‘default’][‘hostname’] = ‘localhost’;

$db[‘default’][‘username’] = ‘rafael’;

$db[‘default’][‘password’] = ‘123456’;

$db[‘default’][‘database’] = ‘anotacoes’;

$db[‘default’][‘dbdriver’] = ‘mysql’;

$db[‘default’][‘dbprefix’] = ”;

$db[‘default’][‘pconnect’] = TRUE;

$db[‘default’][‘db_debug’] = TRUE;

$db[‘default’][‘cache_on’] = FALSE;

$db[‘default’][‘cachedir’] = ”;

$db[‘default’][‘char_set’] = ‘utf8’;

$db[‘default’][‘dbcollat’] = ‘utf8_general_ci’;

$db[‘default’][‘swap_pre’] = ”;

$db[‘default’][‘autoinit’] = TRUE;

$db[‘default’][‘stricton’] = FALSE;