PagSeguro
Canais iMasters

CodeIgniter + PHP + Software Livre

CRUD com segurança no CodeIgniter

Leia o artigo anterior

Criando uma aplicação com o framework CodeIgniter

Soluções com o framework Codeigniter - PHP

*

Continuando a série de artigos sobre o CodeIgniter, hoje criaremos nosso primeiro CRUD (Create Retrieve Update Delete), que quer dizer, criar, buscar, atualizar e excluir registro de um banco de dados. Manteremos o mesmo template e visual, fica a critério do desenvolvedor altear o visual do sistema.

Primeiramente vamos criar três diretórios, no diretório raiz do projeto, o diretório "css", "js" e "img", conforme imagem abaixo:

Criei também um arquivo de estilos, dentro do dir css, o estilo.css, retirei todo css que estava no template_view.php, e coloquei dentro desta folha de estilos, modularizando mais nossa aplicação.

Veja que estou utilizando uma função/helper chamada "base_url()", esse helper está dentro dos helpers de URL. Para utilizá-lo, bastar adicioná-lo no arquivo system/application/confg/autoload.php editando a linha 54.

$autoload['helper'] = array('url');

Lembrando que para isso funcionar devemos estar configurado a base_url, conforme primeiro artigo.

Aproveite também para alterar a linha 42, adicionando a library de database.

$autoload['libraries'] = array('parser','database');

Bem, vamos criar nosso banco de dados.

CREATE DATABASE `codeigniter` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

Existem três dicas para nunca termos problemas de acentuação, são elas:

  • Banco de dados
  • Arquivos
  • Meta tag's

Chamei nosso banco de dados de codeigniter, uma observação importante é deixar o CHARACTER SET como utf8 e a COLLATE como utf8_general_ci. Para nunca termos problemas com caracteres especiais e acentuação, sempre deixe com essas configurações.

Outra configuração que evita erros de acentuação é salvar seus arquivos como UTF8.

E a terceira é a linha 3 do template_view.php, iremos acrescentar isso conforme figura anterior:

Execute o código SQL abaixo:

CREATE TABLE `noticia` (
`id_noticia` int(16) unsigned NOT NULL auto_increment,
`titulo_noticia` varchar(128) NOT NULL,
`texto_noticia` text NOT NULL,
`data_noticia` datetime NOT NULL,
PRIMARY KEY (`id_noticia`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Criado o nosso banco de dados corretamente, vamos dar sequência a nossa aplicação.

Vamos criar um diretório dentro de view chamado "noticia", e após criaremos três view's novas.

A primeira é a noticia_view.php


noticia_cad_view.php


noticia_del_view.php


OBS: Vejam que eu tenho um marcador em forma de bloco da linha 4 à linha 7 do arquivo noticia_del_view.php. Os blocos servem como se fossem loop's (ele faz um foreach por baixo dos panos), neste bloco eu jogo pra dentro dele um vetor de objetos e ele popula sozinho pra mim os dados.

Agora criaremos uma model chamada "noticia_model", onde estaremos colocando todas as nossas regras de negócios.



class noticia_model extends Model {

private $vet_dados = array();

public function __construct() {
parent::Model();
}

public function mostrar() {

$this->vet_dados["noticia"] = $this->getNoticia();

return $this->parser->parse("noticia/noticia_view", $this->vet_dados, TRUE);

}

Comente também

14 Comentários

Ronaldo Chevalier
Ronaldo Chevalier

o link para a aplicação em funcionamento não direciona para o CRUD..

*preciso arranjar tempo pra voltar a estudar framework

Andreus Timm
Andreus Timm

Vou pedir para eles arrumarem.
http://www.atsystem.com.br/artigos/codeigniter2/

Deives Fahl
Deives Fahl

Muito bom o tutorial, estou iniciando com o CodeIgniter e vai me ajudar bastante...
Valeu! abs

Andreus Timm
Andreus Timm

Deives e todos, se precisar de qualquer ajuda sobre CI, a comunidade Brasileira de CI é bem receptiva, existem uma lista de email lá, cadastrem-se lá vale a pena.
http://www.codeigniter.com.br/
ou qualquer coisa podem me mandar um email.

Ronaldo Chevalier
Ronaldo Chevalier

Peguei hoje pra fazer.. como não estou copiando e colando, deu alguns errinhos, mas após corrigidos está funcionando..
no aguardo do próximo artigo :)

Andreus Timm
Andreus Timm

Para configurar o projeto baixado, são 3 coisas simples.
- basta importar o banco
- confirgurar o arquivo config.php, com a base_url
- e por fim, configurar o arquivo database.php com os dados do banco.

e já eras... =)

Eduardo Maurício Pessoa De Souza
Eduardo Maurício Pessoa De Souza

Pessoal, não funcionou devo estar com algum problema no base_url, não consigo ativar o css e quando chamo as funções a url fica assim: (dá um erro de acesso proibido)
http://localhost/codeigniter/<?=base_url()?>index.php/noticia/

no meu system\application\config\config.php
$config['base_url'] = "http://localhost/codeigniter/";

Andreus Timm
Andreus Timm

Verifica sua config do php, o short_open_tag não está off, se tiver coloca On.

palotex
palotex

link quebrados !

Andreus Timm
Andreus Timm

Desculpe pelo link, o site acabou ficando offline, podem me mandar email solicitando os arquivos enqanto eu não posto em outro server..

rafaeldrm
rafaeldrm

Baixei o aplicativo tive que alterar uns caminhos de url's para funcionar perfeito no meu computador.
agora me apareceu um problema somente na hora de alterar.
clico para alterar aparece os campos com as informações buscadas no banco, porém na hora de alterar (quando clico no botão enviar), não faz nada e os campos aparecem {titulo_noticia} e {texto_noticia}. Não altera em nada no banco.

willian
willian

tambem gostaria de ter esse exemplo se puder me mandar o link ficarei grato

Andreus Timm
Andreus Timm

Galera vocês podem acessar nesse link, http://www.jornalnoticiario.com.br/artigos/codeigniter3/
A única diferença é que este está mais completo, está com as validações já. Vou ver se consigo disponibilizar outro link com apenas essa app.

José
José

regra de negocio no model ????

Qual a sua opinião?

Comentários considerados ofensivos serão moderados.

Parceiros

IBM
PagSeguro
Internet Innovation
Dialhost
HostNet
Tecla
KingHost
DotStore
Dinamize