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



Documentos relacionados
AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

Sistema de Controle de Estoque

Projeto de Banco de Dados: Empresa X

Introdução ao SQL. Aécio Costa

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

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

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Treinamento sobre SQL

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

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

A linguagem SQL

Comandos de Manipulação

Comandos DDL. id_modulo = id_m odulo

Desenvolvimento de Aplicações para Internet Aula 7

SQL. Autor: Renata Viegas

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Structured Query Language (SQL) Aula Prática

Introdução à linguagem SQL

Logado no OracleXE vamos acessar a opção:

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

Desenvolvimento de Aplicações para Internet Aula 8

Curso PHP Aula 08. Bruno Falcão

Linguagem de Consulta - SQL

Treinamento PostgreSQL - Aula 03

Correção da 1a Prova de GBD1 2010/1. Profa. Sandra de Amo

Relatório. Projecto de Base de Dados Parte 2. Turno: quinta-feira, 11:30 Grupo 25: André Gonçalves Rui Barradas Hélton Miranda 68477

SQL: Definição de tabelas, Modificações à Base de Dados

Projeto de Banco de Dados

PostgreSQL Exemplo MDI

AULA 12 RELATÓRIOS PDF O QUE É UM FORMATO PDF

PROCEDIMENTOS ARMAZENADOS (Stored Procedures)

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

EXEMPLOS DE COMANDOS NO SQL SERVER

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

1. Domínio dos Atributos

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

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

Programação para Android. Aula 08: Persistência de dados SQL

22/05/2012 CRIANDO UM PROJETO COM TELAS ESTRUTURA DA APLICAÇÃO LOGIN BANCO DE DADOS TAREFAS PHP MYSQL PARTE 2

BANCO DE DADOS I. Exercícios

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

(1,n) venda. (1,1) realizacao. cliente. (0,n) (1,1) contem. produto. Laboratório de Banco de Dados Exercicios

Data Transformation Services (DTS) por Anderson Ferreira Souza

Usando PostgreSQL na Regra de Negócio de um ERP. Fabiano Machado Dias Eduardo Wolak

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

Bases de Dados 1º semestre

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc.

Interagindo com Banco de Dados

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Banco de Dados Avançados Banco de Dados Ativo

PHP e MySQL Autenticação de Usuários

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc.

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL

RELACIONAMENTOS ENTRE OS OBJETOS NO FRAMEWORK HIBERNATE Elio Lovisi Filho 1 Ronney Moreira de Castro 2 RESUMO

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

Treinamento em PHP. Aula 7. Ari Stopassola Junior

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

Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 01

Structured Query Language (SQL)

Como já foi muito bem detalhado no Capítulo IV, o jcompany Developer Suite pode ser

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

Solução do segundo exercício proposto REDE DE HOTÉIS

SQL. Definição do Esquema da Base de Dados. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

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

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

INNER, CROSS, LEFT, RIGHT E FULL JOINS SIMPLES ASSIM! Wellyngton Luiz Cruz Moreira wlcmoreira@hotmail.com

Banco de Dados. Maurício Edgar Stivanello

Programação SQL. Introdução

FUNCTION ) RETURNS INTEGER AS $$ DECLARE

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Android Banco de Dados. Ivan Nicoli

Exercícios. Exercícios

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes

Disciplina: Unidade V: Prof.: Período:

Linguagem SQL. Comandos Básicos

Prof.: Clayton Maciel Costa

Consistem num conjunto de apontadores para instâncias especificas de cada relação.

LINGUAGEM DE PROGRAMAÇÃO WEB

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

Persistência de Classe e Auto- Relacionamento em Tabelas de Banco de Dados

SQL - Criação de Tabelas

Banco de Dados. Conversão para o Banco de Dados SisMoura

Sistemas de Informação

Tarefa Orientada 19 Triggers

EXERCÍCIOS PRÁTICOS. Banco de Dados

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL

Fundamentos do Sistema Gerenciador de Banco de Dados

Programação Web Prof. Wladimir

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Linguagem SQL (Parte II)

Banco de dados. Linguagens de Banco de Dados II. Wedson Quintanilha da Silva -

AULA 7 FUNÇÕES AGREGADAS. Funções Agregadas

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

Transcrição:

AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS Na grande maioria dos sistemas, faz-se necessário utilizar informações que estão armazenadas em uma determinada tabela, para serem gravadas em outras. Por exemplo: Se cadastrarmos um aluno na tabela alunos, precisamos das informações dos cursos cadastrados e associar este aluno a um dos cursos. Os alunos estão cadastradis em uma tabela e os cursos em outra. O que ligaria estes alunos a cada curso? Seria através do código do curso. Ou seja, o código do curso da tabela cursos, irá relacionar-se com o código do curso da tabela alunos. É exatamente este modelo que veremos nas próximas aulas. Além da tabela cursos, vamos relacionar a tabela alunos com as seguintes tabelas: tipostatus e turno. Desta forma, teremos um modelo de cadastro um pouco mais complexa, e adaptável para outras realidades. O modelo da tela do cadastro de alunos está abaixo. Verifique se: o banco de dados academico está criado. Se no banco de dados estão as tabelas cursos, tipostatus, turno e alunos. 1

MODELAGEM DE RELACIONAMENTO ENTRE AS TABELAS Script das tabelas no banco de dados academico create table cursos ( codcurso serial primary key, nomecurso varchar(40 NOT NULL, CONSTRAINT un_curso UNIQUE (nomecurso create table turnos ( codturno serial primary key, desturno varchar(20 NOT NULL, CONSTRAINT un_turnos UNIQUE (desturno create table tipostatus ( codstatus serial primary key, descricao varchar(40 NOT NULL, CONSTRAINT un_status UNIQUE (descricao Utilizando as telas já prontas, inclua alguns dados nas tabelas acima -------------------------------- Tabela alunos: a tabela alunos deverá estar relacionada com as tabelas cursos, turnos e tipostatus create table alunos ( matricula integer primary key, nome varchar(60 NOT NULL, endereco varchar(60 NOT NULL, bairro varchar(20 NOT NULL, telefone integer, datanasc date, codcurso integer REFERENCES cursos (codcurso, codturno integer REFERENCES turnos (codturno, codstatus integer REFERENCES tipostatus (codstatus 2

A classe Alunos terá praticamente os mesmos métodos da classe Cursos, sendo que todos os atributos mudam: CLASSE ALUNO - matricula: string + nomealuno: string + codcurso: integer + codturno: integer + codstatus: integer + endereco: string + bairro: string + cep: integer + telefone: integer + datanasc: date +Incluir( +Alterar( +Excluir( +Pesquisar( +Listar( Os métodos que farão parte da classe Alunos serão Incluir(, Alterar(, Excluir(, Pesquisar( e Listar(. Como disse, quase tudo será muito parecido com o que já fizemos no cadastro de cursos. Deverão ser criados : classe Alunos (class.alunos.php, o programa com a tela (cadalunos.php e as regras (cadalunos_regras.php. De diferente do modelo inicial, temos o método Pesquisar(, que irá selecionar os campos de apenas um (1 aluno. A utilização do método Pesquisar( veremos em breve. IMPLEMENTAR A CLASSE ALUNO Vamos iniciar a construção da classe alunos. Como disse anteriormente, teremos praticamente os mesmos métodos da classe cursos, sendo que temos mais campos, e desta forma, mais atributos a serem declarados na classe. Passos a serem executados: 1 Declarar os atributos de acordo com o diagrama do início da página 2 Criar o método construtor, sabendo-se que a matricula é um atributo com visibilidade privada. 3 Criar o método para incluir os dados na tabela <?php include "conecta.inc"; class Aluno { // Declaraçao dos atrbutos private $matricula; public $nome; public $endereco; public $bairro; public $telefone; public $datanasc; public $codcurso; public $codturno; public $codstatus; MÉTODO INCLUIR // Método Construtor function construct($matricula=null { if ($matricula <> NULL { 3

$this->matricula = $matricula; // Método para incluir dados // O comando SET DATESTYLE TO 'SQL, DMY'; formata os campos tipo date public function Incluir( { INSERT INTO alunos (matricula, nome, endereco, bairro, telefone, datanasc, codcurso, codturno, codstatus VALUES ($this->matricula, '$this->nome', '$this->endereco', '$this->bairro', $this->telefone, '$this->datanasc', $this->codcurso, $this->codturno, $this->codstatus "; $res = @pg_query($sql; if (@pg_affected_rows($res > 0 { // conta número de linhas afetadas return "Aluno incluido com sucesso!!!"; else { return "Falha na inclusão!!!"; IMPORTANTE Uma novidade, é na nossa modelagem termos acrescentado um campo do tipo DATE. Como existem problemas com formatação de data, um dos recursos que podemos utilizar é o comando SQL SET DATESTYLE TO 'SQL, DMY';. O comando SET DATESTYLE, que é um comando SQL, formata o estilo de data de acordo com o que desejarmos. No nosso caso, o nosso formato é dia/mes/ano (DMY. Existem outras formas de retornar uma data formatada, mas o importante é que seja feito, pois senão a data poderá retorna em formato americado (YMD. MÉTODOS ALTERAR E EXCLUIR Os métodos alterar e excluir deverão ter como condição executar o comando a partir de uma determinada matrícula. // Método para alterar dados da tabela public function Alterar( { UPDATE alunos SET nome = '$this->nome', endereco = '$this->endereco', bairro = '$this->bairro', telefone = $this->telefone, datanasc = '$this->datanasc', codcurso = $this->codcurso, codturno = $this->codturno, codstatus = $this->codstatus WHERE matricula = $this->matricula"; $res = @pg_query($sql; if (@pg_affected_rows($res > 0 { return "Aluno Alterado com sucesso!!!"; else { return "Falha na Alteração!!!"; 4

// Método para excluir dados public function Excluir( { $sql = "DELETE FROM alunos WHERE matricula = $this->matricula"; $res = @pg_query($sql; if (@pg_affected_rows($res > 0 { return "Matricula excluida com sucesso!!!"; else { return "Falha na Exclusão!!!"; MÉTODO PESQUISAR Este método será construído para implementação na tela de cadastro de alunos. Será consultado todos os dados de 1 (um aluno, a partir da matricula informada no formulário. // Método para selecionar os campos de apenas 1 aluno, de acordo com o valor do atributo matricula, retornando uma array com estes dados public function Pesquisar( { SELECT matricula, nome, endereco, bairro, telefone, datanasc, codcurso, codturno, codstatus FROM alunos WHERE matricula = $this->matricula"; $res = @pg_query($sql; $dados = @pg_fetch_all($res; return $dados; MÉTODO LISTAR Este método seleciona todos os dados da tabela, e retorna em formato array. Pode ser utilizado em uma consulta na tela ou em um relatório. Como vamos precisar das descrições das demais tabelas (cursos, tipostatus, turnos, teremos que selecionar os dados utilizando o INNER JOIN. // Selecionar todos os dados de uma tabela public function Listar( { SELECT matricula, nome, endereco, bairro, telefone, datanasc, cur.codcurso, nomecurso, tur.codturno, desturno, stat.codstatus, descricao FROM alunos alu INNER JOIN cursos cur ON cur.codcurso=alu.codcurso INNER JOIN turnos tur ON tur.codturno=alu.codturno INNER JOIN tipostatus stat ON stat.codstatus=alu.codstatus ORDER BY nome"; $res = pg_query($sql; $dados = pg_fetch_all($res; return $dados; Obs: No caso da tabela alunos, como existe relacionamento entre outras tabelas, estamos utilizando a junção INNER JOIN, para relacionar os dados entre as tabelas. 5

PROGRAMA PARA TESTAR A CLASSE ALUNOS Vamos criar um programa chamado testaraluno.php, onde iremos instanciar a classe, declarar os atributos e testar alguns métodos. <?php include "class.aluno.php"; $objeto = new Aluno(1; $objeto->nome = 'Aline'; $objeto->endereco = 'Rua talssss'; $objeto->bairro = 'Coisa e tal'; $objeto->telefone ='111'; $objeto->datanasc = '24/04/1994'; $objeto->codcurso = 1; $objeto->codturno = 1; $objeto->codstatus = 1; var_dump($objeto; $objeto->incluir(;?> EXERCÍCIO Para exercitar, criem uma classe chamada Professor, com praticamente os mesmos atributos e com os mesmos métodos. Faça também o programa para instanciar e testar a classe e seus méodos. - matricula: string + nomealuno: string + codcurso: integer + endereco: string + bairro: string + cep: integer + telefone: integer + datanasc: date +Incluir( +Alterar( +Excluir( +Pesquisar( +Listar( CLASSE ALUNO 6