Interagindo com Banco de Dados



Documentos relacionados
Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

JDBC Java Database Connectivity

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET. Programação para Internet I

PROGRAMAÇÃO ORIENTADA A OBJETO EM PHP

JAVAWEB AULA 2 Prof. Daniela Pires Sumário

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA. Módulo de Programação Prof. Bruno Maciel

PHP INTEGRAÇÃO COM MYSQL PARTE 2

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO

AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

WEBDESIGN. Professor: Paulo Marcos Trentin - paulo@paulotrentin.com.br Escola CDI de Videira

Esse manual é um conjunto de perguntas e respostas para usuários(as) do Joomla! 1.5.

13 Conectando PHP com MySQL 13.1 Introdução

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Armazenamento organizado facilitando SCRUD; Agiliza processo de desenvolvimento de sistemas;

Tutorial USERADM Como inserir conteúdo no Portal Transparência

Manual Administrador - Mídia System

Iniciando o MySQL Query Brower

MANUAL DO ANIMAIL Terti Software

BANCO DE DADOS WEB. Professor Luciano Roberto Rocha

INSTALAÇÃO OASIS + WAMP SERVER NO AMBIENTE WINDOWS

Portal da Prefeitura de São Paulo SECOM. MANUAL DO WARAM v. 1.5 Secretarias

Omega Tecnologia Manual Omega Hosting

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Desenvolvendo Websites com PHP

Logo abaixo temos a Barra de Menus que é onde podemos acessar todos os recursos do PHP Editor.

Tutorial WEB CONTENT MANAGEMENT [WCM] Obtenha benefícios a partir das aplicações customizadas da ADMT.

Controle de acesso. .com.br

ASSOCIAÇÃO CRISTÃ DE MOÇOS DO RIO GRANDE DO SUL DEPARTAMENTO DE TECNOLOGIA DA INFORMAÇÃO

MANUAL DO INSTAR-MAIL 1.0. Pagina de login e senha do Instar-Mail

CODE IGNITER INSTALAÇÃO & BANCO DE DADOS

Instalando o WordPress em localhost

02 - Usando o SiteMaster - Informações importantes

Prof. Carlos Majer Aplicações Corporativas UNICID

JAVA NETBEANS PGOO Prof. Daniela Pires Conteúdo

AULA APLICAÇÕES PARA WEB SESSÕES E LOGIN E SENHA

Programação Web Prof. Wladimir

Curso PHP Aula 08. Bruno Falcão

Sensor de temperatura Parte 5 Cleiton Bueno Preparando o ambiente do Banco de dados Mysql

Como Gerar documento em PDF com várias Imagens

APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV

C# - Conexão com MySQL

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

Procedimentos para Reinstalação do Sisloc

Construindo um sistema simples de cadastro de fornecedores em PHP e MySQL.

Procedimentos para Instalação do Sisloc

Manual Comunica S_Line

Passos Preliminares: Acessando a máquina virtual via ssh.

VIAÇÃO SÃO BENTO LTDA.

Módulo e-rede Magento v1.0. Manual de. Instalação do Módulo. estamos todos ligados

Criando, inserindo e exibindo PHP+MySql

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

Bem-vindo ao Guia de Introdução - Utilitários

Principais Ferramentas do Tidia-ae

Passo a Passo do Sistema de Cobrança do Banco do Nordeste

GUIA INTEGRA SERVICES E STATUS MONITOR

Universidade Federal de Viçosa CPD - Central de Processamento de Dados Divisão de Desenvolvimento de Sistemas

ROTEIRO DE INSTALAÇÃO

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA

Pe P d e i d do d o el e et e rôn ô i n co c SI S TE T E A N A BF B A F R A M R A M Manual de Utilização

JavaScript. JavaScript é uma linguagem de script usada em navegadores web. É uma linguagem dinâmica, estruturada e orientada em objetos.

Cadastro Avaliação 2013 Manual de Instruções

Sistema de Gerenciamento Remoto

Manual do Publicador. Wordpress FATEA Sistema de Gerenciamento de Conteúdo Web

Tutorial Gerar arquivo PDF. Gerando um documento pdf com várias imagens 1- Inserir imagem no Word

1. Tela de Acesso pg Cadastro pg Abas de navegação pg Abas dados cadastrais pg Aba grupo de usuários pg.

Programação Web com PHP. Prof. Wylliams Barbosa Santos Optativa IV Projetos de Sistemas Web

Módulo e-rede OpenCart v1.0. Manual de. Instalação do Módulo. estamos todos ligados

STK (Start Kit DARUMA)

Follow-Up Acompanhamento Eletrônico de Processos (versão 3.0) Manual do Sistema. 1. Como acessar o sistema Requisitos mínimos e compatibilidade

Escrito por Sáb, 15 de Outubro de :19 - Última atualização Seg, 26 de Março de :32

Este tutorial mostra como utilizar as ferramentas Send Mail e Web Commands.

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

Criando um script simples

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Acessando um Banco de Dados

Manual de Utilização

Manual de configuração do sistema

Tutorial SGCD. 1. Efetuando Login no Sistema. 2. Criando uma nova página. 3. Editando uma página já existente

Como incluir artigos:

Manual do Painel Administrativo

Personal Home Page PHP. Prof. Luiz Claudio F. de Souza

Veja abaixo um exemplo de como os dados são mostrados quando usamos o

Manual de Instalação. SafeSign Standard (Para MAC OS 10.7)

Tecnologia WEB III. Prof. Erwin Alexander Uhlmann. PHP e MySQL. UHLMANN, Erwin Alexander. Introdução ao PHP. Instituto Siegen. Guarulhos, 2012.

Manual de utilização do sistema de envio de sms marketing e corporativo da AGENCIA GLOBO. V

MANUAL COTAÇAO WEB MANUAL MANUAL AVANÇO INFORMÁTICA AVANÇO INFORMÁTICA. [Digite seu endereço] [Digite seu telefone] [Digite seu endereço de ]

Módulo e-rede Prestashop v1.0. Manual de. Instalação do Módulo. estamos todos ligados

Projeto de Banco de Dados: Empresa X

Sistema de Controle de Cheques GOLD

Tutorial Plone 4. Manutenção de Sites. Universidade Federal de São Carlos Departamento de Sistemas Web Todos os direitos reservados

1- Requisitos mínimos. 2- Instalando o Acesso Full. 3- Iniciando o Acesso Full pela primeira vez

JAVAWEB AULA 2 Prof. Daniela Pires Sumário

Guia Site Empresarial

E&L Protocolo, Documentos Eletrônicos e Processos Perguntas Frequentes

Transcrição:

Interagindo com Banco de Dados Até agora não falamos de banco de dados, pois gostaríamos prime iro de te preparar para o uso do banco de dados dentro do Framework MVC. Mas antes de falarmos do framework e MVC vamos criar um banco de dados chamado News com a tabela noticias e iremos inserir 4 notícias nela. E iremos construir uma estrutura de programação integrada ao banco de dados. Para isso necessitamos que habilite o Mysql no Painel de Controle do Xampp e clique no Admin, como mostra as telas abaixo. 1

Essa é a tela do PHPMyadmin, com ele iremos trabalhar com banco de dados MySql. 7.1- Criando Usuário Primeira ação a ser tomada é criar um usuário que irá fazer conexão com o banco de dados para isso clique em Privilégios na tela acima. Você entrará na tela abaixo e verá que já tem dois usuários criados o root que não tem senha cadastrada e o pma que é de uso interno do PHPMyAdmin. 2

Porém para nossas aplicações vamos criar o nosso usuário. Para isso siga os procedimentos da próxima tela atentamente. O usuário deve ter nome simples sem caractere especial e espaço, o servidor será o Local automaticamente ele preenche com localhost, a senha pode ser de 4 a 12 caracteres, preencha uma senha que memorize. O campo gerar senha, irá gerar uma senha ideal com vários caracteres aceitáveis, aufanuméricos, fica a sua escolha. Em relação a banco de dados por usuários, deixe nenhum que seu usuário funcionará em qualquer aplicação. Permissão de dados, escolha SELECT, INSERT, UPDATE, DELETE e FILE, para que consiga listar registros, inserir, alterar e excluir. As demais permissões não é adequado fazer na aplicação e sim direto no banco de dados, dependendo sempre da regra do negócio. Após isso clique no botão Executar. 7.2 Criando as tabelas e inserts Agora clique em SQL no menu superior do PHPMyAdmin e escreva o seguinte 3

código SQL. CREATE DATABASE news; Em seguida clique em executar. Agora clique na lateral sob o banco de dados news afim de selecioná-lo a receber os seguintes códigos abaixo, caso você não selecionar o banco de dados, ao executar os scripts abaixo ele irá dizer que nenhum banco de dados foi selecionado. Ao selecionar o banco de dados, clique em SQL e digite os códigos abaixo. CREATE TABLE noticias( noticia_id INT(11) NOT NULL AUTO_INCREMENT, noticia_titulo VARCHAR(255) NOT NULL, noticia_seo VARCHAR(255) NOT NULL, noticia_texto TEXT NOT NULL, noticia_fonte VARCHAR(255) NOT NULL, noticia_data DATE NOT NULL, CONSTRAINT PK_not PRIMARY KEY(noticia_id) ); INSERT INTO noticias (noticia_titulo, noticia_seo, noticia_texto, noticia_fonte, noticia_data) VALUES ('Título 1','titulo-1','Lorem Ipsum é simplesmente uma simulação de texto da indústria tipográfica e de impressos, e vem sendo utilizado desde o século XVI, quando um impressor desconhecido pegou uma bandeja de tipos e os embaralhou para fazer um livro de modelos de tipos. Lorem Ipsum sobreviveu não só a cinco séculos, como também ao salto para a editoração eletrônica, permanecendo essencialmente inalterado. Se popularizou na década de 60, quando a Letraset lançou decalques contendo passagens de Lorem Ipsum, e mais recentemente quando passou a ser integrado a softwares de editoração eletrônica como Aldus PageMaker.','fonte 1','2011-11-12'), ('Título 2','titulo-2','Lorem Ipsum é simplesmente uma simulação de texto da indústria tipográfica e de impressos, e vem sendo utilizado desde o século XVI, quando um impressor desconhecido pegou uma bandeja de tipos e os embaralhou para fazer um livro de modelos de tipos. Lorem Ipsum sobreviveu não só a cinco séculos, como também ao salto para a editoração eletrônica, permanecendo essencialmente inalterado. Se popularizou na década de 60, quando a Letraset lançou decalques contendo passagens de Lorem Ipsum, e mais recentemente quando passou a ser integrado a softwares de editoração 4

eletrônica como Aldus PageMaker.','fonte 2','2011-11-12'), ('Título 3','titulo-3','Lorem Ipsum é simplesmente uma simulação de texto da indústria tipográfica e de impressos, e vem sendo utilizado desde o século XVI, quando um impressor desconhecido pegou uma bandeja de tipos e os embaralhou para fazer um livro de modelos de tipos. Lorem Ipsum sobreviveu não só a cinco séculos, como também ao salto para a editoração eletrônica, permanecendo essencialmente inalterado. Se popularizou na década de 60, quando a Letraset lançou decalques contendo passagens de Lorem Ipsum, e mais recentemente quando passou a ser integrado a softwares de editoração eletrônica como Aldus PageMaker.','fonte 3','2011-11-12'), ('Título 4','titulo-4','Lorem Ipsum é simplesmente uma simulação de texto da indústria tipográfica e de impressos, e vem sendo utilizado desde o século XVI, quando um impressor desconhecido pegou uma bandeja de tipos e os embaralhou para fazer um livro de modelos de tipos. Lorem Ipsum sobreviveu não só a cinco séculos, como também ao salto para a editoração eletrônica, permanecendo essencialmente inalterado. Se popularizou na década de 60, quando a Letraset lançou decalques contendo passagens de Lorem Ipsum, e mais recentemente quando passou a ser integrado a softwares de editoração eletrônica como Aldus PageMaker.','fonte 4','2011-11-12'); CREATE TABLE textos( texto_id INT(11) NOT NULL AUTO_INCREMENT, texto_titulo VARCHAR(255) NOT NULL, texto_seo VARCHAR(255) NOT NULL, texto_texto TEXT NOT NULL, CONSTRAINT PK_tex PRIMARY KEY(texto_id) ); INSERT INTO textos (texto_titulo, texto_seo, texto_texto) VALUES ('Quem Somos','quem-somos','Lorem Ipsum é simplesmente uma simulação de texto da indústria tipográfica e de impressos, e vem sendo utilizado desde o século XVI, quando um impressor desconhecido pegou uma bandeja de tipos e os embaralhou para fazer um livro de modelos de tipos. Lorem Ipsum sobreviveu não só a cinco séculos, como também ao salto para a editoração eletrônica, permanecendo essencialmente inalterado. Se popularizou na década de 60, quando a Letraset lançou decalques contendo passagens de Lorem Ipsum, e mais recentemente quando passou a ser integrado a softwares de editoração eletrônica como Aldus PageMaker.'), ('Home','home','Lorem Ipsum é simplesmente uma simulação de texto da 5

indústria tipográfica e de impressos, e vem sendo utilizado desde o século XVI, quando um impressor desconhecido pegou uma bandeja de tipos e os embaralhou para fazer um livro de modelos de tipos.'); 7.3 Criando listar notícias Ao fazer o procedimento acima, você acaba de criar uma tabela no banco de dados e inserir 4 registros na mesma. Agora iremos construir três arquivos. 7.3.1 Arquivo BASICS.PHP O primeiro arquivo será o basics.php que conterá a classe simples do capítulo terá uma relação de classes a serem usadas na minha aplicação, o segundo arquivo será o arquivo news.php que conterá as classes de banco de dados, o terceiro arquivo será o controlador.php que irá criar objetos e instanciar métodos do objeto criado e controlará quais serão os métodos deverão ser acessados. E o terceiro e último arquivo será um HTML que terá a variável PHP sendo exibida apenas. Abra então o seu editor HTML, salve um arquivo em branco chamado news.php e escreva as seguintes instruções. Segue abaixo script de cada arquivo. BASICS.PHP Conterá o código da classe simples com capítulo 6 acrescido das linhas abaixo em negrito. <?php class basics { public $mes; public $data; public $valor; public $semana; public $caracter; public $url; public $string; public $msg; public $nome_banco; public $login; public $senha; 6

public function formata_data_banco($data) { //converte data dd/mm/aaaa para aaaa-mm-dd if ($data == "") return null; $corrige = explode("/", $data); $corrige = $corrige[2]."-".$corrige[1]."-".$corrige[0]; return $corrige; public function formata_data_br($data) { //converte aaaa-mm-dd para dd/mm/aaaa if ($data == "") return ""; $corrige = explode("-",$data); $corrige = $corrige[2]."/".$corrige[1]."/". $corrige[0]; return $corrige; public function formata_dollar($valor) {//converte valor de U$ para R$ $valor = str_replace('.','',$valor); $valor = str_replace(',','.',$valor); if(empty($valor)) return "0.00"; return $valor; public function formata_real($valor) {//converte valor de U$ para R$ $valor = str_replace('.',',',$valor); if(empty($valor)) return "0,00"; return $valor; public function nome_mes($mes) { //converte mês em número para o nome em pt $arr = array('janeiro','fevereiro','março','abril','maio','junho','julho','agosto','setembro','out ubro','novembro','dezembro'); return $arr[$mes]; public function semana($semana) {// converte o dia da semana em num para extenso em pt $arr = array('domingo','segunda-feira','terça-feira','quarta- Feira','Quinta-Feira','Sexta-Feira','Sábado'); return $arr[$semana]; public function caracteres($string,$caracter){ $str = substr($string,0,$caracter)."..."; return $str; public function data_hoje(){ return date("y")."-".date("m")."-".date("d"); public function horario(){ return date("h")."-".date("i")."-".date("s"); public function redireciona($url){?> <script> 7

location.href="<?= $url?>"; </script> <? public function redireciona_msg($url,$msg){?> <script> location.href="<?= $url?>"; alert("<?= $msg?>"); </script> <? public function conn($server,$nome_banco,$login,$senha){ $conn = mysql_connect($server,$login,$senha); mysql_select_db($nome_banco) or die("não conectou!");?> Foi inserido um método no código anterior, o método conn realiza conexão com o banco de dados. 7.3.2 - Arquivo NEWS.PHP <?php 1 include basics.php ; 2 class news extends basics{ 3 public $noticia_id; 4 public function lista_news(){ 5 $sql = mysql_query("select * FROM noticias ORDER BY noticia_data DESC"); 6 if(mysql_num_rows($sql)>0){ 7 $list_news = "<h1>notícias</h1>"; 8 while($array = mysql_fetch_array($sql)){ 9 $list_news.= "<a href=\"controller.php?noticia_id=".$array['noticia_id']."\"><h2>".basic s::formata_data($array['noticia_data'])." - ".$array['noticia_titulo']."</h2> <p>".basics::caracteres($array['noticia_texto'],100)."</p></a><p> </p><hr /><p> </p>"; 10 11 12 return $list_news; 13 14 public function detail_news($noticia_id){ 15 $sql = mysql_query("select * FROM noticias WHERE 8

noticia_id='$noticia_id'"); 16 if(mysql_num_rows($sql)>0){ 17 $array = mysql_fetch_array($sql); 18 $list_news = "<h1>".$array['noticia_titulo']."</h1> ".$array['noticia_texto']." <p><strong>fonte:</strong> ".$array['noticia_fonte']."</p> <p><strong>data:</strong> ".basics::formata_data($array['noticia_data'])."</p>"; 19 else{ 20 $list_news = "Não há esta notícia no banco de dados!"; 21 22 return $list_news; 23 24?> Na linha 1 ele inclui a classe basics.php. Na linha 2 ele começa a classe news que se extende da classe basics já explicada nas páginas anteriores. Na linha 3 ele declara o atributo noticia_ id como público. Na linha 4 ele começa a construir o método lista_news que irá listar os registros contidos na tabela noticias no banco de dados. Repare que as querys de banco de dados estão dentro do código mysql_query, que tem a função de executar querys SQL. O mysql_num_rows irá indicar a quantidade de registros no banco de dados e o mysql_fetch_array irá transformar a consulta do mysql_query em array recuperando os valores contidos em cada coluna do banco de dados na consulta. É importante salientar que nesse livro não iremos abordar a fundo banco de dados, o leitor precisa já ter um conhecimento do mesmo. Iremos aqui usar as querys para resultar registros de nossas consultas, caso queira se aprofundar em banco de dados mysql acesse o site www.mysql.com e para saber todas as funções que existem no PHP para mysql acesse: http://php.net/manual/pt_br/ref.mysql.php Voltando ao código na linha 5 fazemos a consulta MySql. Na linha 6 criamos uma condição dizendo, se existir registros no banco de dados execute as linhas abaixo. Na linha 7 ele cria a variável lista_news e atribui o valor de titulo Noticias. Na linha 8 ele inicia o loop while criando um array através da função 9

mysql_fetch_array. Na linha 9 ele cria o elemento a ser repetido, repare que a variável $lista_news antes do sinal = (igual) tem um ponto (.) o que fará essa variável ser concatenada dentro do laço. Repare que no link apontamos para o mesmo arquivo, porém colocamos?noticia_id=(variável do banco de dados do ID), com isso ao clicarmos na notícia enviaremos o ID da notícia através do método GET para o navegador. E também usamos métodos contidos na classe basics e os instanciamos apenas com basics:: As linhas 10 e 11 irão fechar while e o if, a linha 12 irá retornar a variável lista_news e a linha 13 irá fechar o método. Da linha 14 a linha 24 terá o método detail_news. Da linha 14 a 16 faremos o mesmo procedimento da classe anterior, apenas com a diferença que nessa consulta na clausula WHERE dizemos para carregar apenas a notícia do ID recuperado pelo método GET. Agora na linha 17 ao invés de usar o while iremos apenas usar o array declarado na função mysql_fetch_array. Na linha 18 iremos exibir informações da noticia. Na linha 19 a 21 iremos fazer um e lse caso o id da notícia não exista no banco de dados. E na linha 22 retornamos a variável criada e nas linhas 23 e 24 fechamos método e de pois a classe. 7.3.3 - Arquivo CONTROLADOR.PHP Agora vamos criar o arquivo CONTROLADOR.PHP que irá analisar as variáveis recebidas e enviar o conteúdo conforme as recebe r. <?php 1 include "news.php"; 2 $obj = new news; 3 $obj->conn("localhost","news","daniela","1234"); 4 if(isset($_get['noticia_id'])){ 5 $content = $obj->detail_news($_get['noticia_id']); 6 else{ 7 $content = $obj->lista_news(); 8 9 include "view.html";?> Ele inclui as classes contidas no news.php e cria o objeto, repare que ele consegue acessar os métodos do basic sem a necessidade de criar um objeto para os métodos contidos na classe basic. 10

Na terceira linha ele acessa o método de conexão contido no basics e faz a conexão. Na quarta linha ele verifica se o noticia_id veio pelo método GET e se a variável existir ele acessa o conteúdo do método detail_news caso contrário ele acessa os dados do lista_news, já explicados nas páginas anteriores. Na linha 9 ele inclui o arquivo view.html que será o template HTML a ser usado. 7.3.4 - ARQUIVO VIEW.php É um HTML simples na tag body tem o código <?= $content?> Pronto os arquivos estão prontos, agora acesse http://localhost/controlador.php para ver o resultado. E verá uma página listando notícias e ao clicar abre o detalhe da notícia. Essa é uma maneira simples de fazer um leitor de notícia, porém o grande problema desse método é a segurança, pois variáveis carregadas pelo método GET, podem causar invasões ao banco de dados através de SQL Injection, que são injeções de código SQL através de variáveis recebidas através do método GET. Por isso falaremos no capítulo 9 a respeito rwriter url que nos permite criar URLs que protegem o script de ataques de SQL Injection e também podemos criar URLs inteligentes visando um melhor desempenho do site junto aos sites de busca já que nas regras do SEO Search Engenee Optimization a URL é um dos primeiros índices para indexação de palavras chaves. 11