MONTANDO UMA CONSULTA COM FILTROS Vamos criar uma tela que gere uma relação de dados, escolhendo a ordenação e um filtro. Segue a tela para termos ideia do que precisaremos fazer na classe e no app. TELA HTML include '../app/curso.app.php';?> <form method="post"> <h3>relatório de Cursos </h3> <hr> Ordenação para o relatório : <input type="radio" name="ordem" value="codcurso" checked /> Código <input type="radio" name="ordem" value="nomecurso" /> Nome do Curso <hr> Filtrar Nome do Curso : Digite nome ou parte <input type="text" name="filtro" /> <hr> <input type='submit' name='opcao' value='exibir Dados'> <input type='submit' name='opcao' value='cursos'> </form> Salve como relcursos.php na pasta c:\apache\htdocs\view Sabemos pelo relatório que queremos escolher ORDENAR pelo código do curso ou pelo nome do curso. E queremos filtrar o nome do curso ou parte dele. Para isso, vamos acrescentar na class curso.class.php o seguinte método:.. # Método Relacionar com filtro e ordenação public function relacao($ordem, $filtro) { $ordem = "ORDER BY $ordem"; $filtro = "WHERE ativo='s' AND nomecurso ilike '$filtro%'"; $sql = "SELECT codcurso, nomecurso, ativo FROM cursos $filtro $ordem"; else {
. No arquivo curso.app.php, vamos acrescentar os códigos, redirecionando as opções de acessar o relatório e voltar para a tela de cadastro de cursos: if ($_POST['opcao']=='Relatório') {?> <meta http-equiv="refresh" content="0;url='relcurso.php'" /> if ($_POST['opcao']=='Cursos') {?> <meta http-equiv="refresh" content="0;url='cadcurso.php'" /> CLASSE COMPLETA ATUALIZADA # Include do arquivo com a conexão com o banco de dados include "conecta.php"; class Curso { # Declarando atributos private $codcurso; public $nomecurso; public $ativo; # Método Construtor function construct($codcurso) { $this->codcurso = $codcurso; # Método Incluir - inclusão de dados na tabela public function Incluir() { $sql = "INSERT INTO cursos (codcurso, nomecurso, ativo) VALUES ($this- >codcurso, '$this->nomecurso', '$this->ativo')"; # Executando a query com a função pg_query if (pg_affected_rows($res) > 0) { # Contando quantas linhas foram incluidas return "Curso incluido com sucesso!!!"; else { return "Falha na inclusão!!!"; # Método Listar - Listar todos os dados de uma tabela public function Listar() { $sql = "SELECT codcurso, nomecurso, ativo FROM cursos ORDER BY nomecurso";
else { # Método Carregar - Listar 1 (UM ÚNICO) dado de uma tabela public function Carregar() { $sql = "SELECT codcurso, nomecurso, ativo FROM cursos WHERE codcurso = $this->codcurso"; else { # Método Alterar - alteração de dados na tabela public function Alterar() { $sql = "UPDATE cursos SET nomecurso = '$this->nomecurso', ativo = '$this->ativo' WHERE codcurso = $this->codcurso"; # Executando a query com a função pg_query if (pg_affected_rows($res) > 0) { # Contando quantas linhas foram alteradas return "Curso alterado com sucesso!!!"; else { return "Falha na alteração!!!"; # Método Relacionar com filtro e ordenação public function relacao($ordem, $filtro) { $ordem = "ORDER BY $ordem"; $filtro = "WHERE ativo='s' AND nomecurso ilike '$filtro%'"; $sql = "SELECT codcurso, nomecurso, ativo FROM cursos $filtro $ordem"; else {?> APP ATUALIZADO
# Include da classe Curso include "../classes/curso.class.php"; # Instanciando a classe (criando o objeto) # Como o código do curso é private, vamos ter acesso ao atributo através do método construtor $objeto = NEW Curso($_POST['codcurso']); if ($_POST['opcao']=='Incluir') { # Passando o valor do nome do curso ao atributo da classe # Sempre que precisarmos acessar a classe será através do objeto $objeto->nomecurso = $_POST['nomecurso']; $objeto->ativo = $_POST['ativo']; # Executando o método Incluir() # Estamos atribuindo a uma variável pois o método está retornando uma mensagem $retorno = $objeto->incluir(); # Mostrando a Mensagem echo $retorno; if ($_POST['opcao']=='Alterar') { # Passando o valor do nome do curso ao atributo da classe # Sempre que precisarmos acessar a classe será através do objeto $objeto->nomecurso = $_POST['nomecurso']; $objeto->ativo = $_POST['ativo']; # Executando o método Incluir() # Estamos atribuindo a uma variável pois o método está retornando uma mensagem $retorno = $objeto->alterar(); # Mostrando a Mensagem echo $retorno; if ($_POST['opcao']=='Carregar') { $dados = $objeto->carregar(); $cod = $dados[0]['codcurso']; $nom = $dados[0]['nomecurso']; if ($_POST['opcao']=='Menu') {?> <meta http-equiv="refresh" content="0;url='../menu.php'" /> if ($_POST['opcao']=='Relatório') {?> <meta http-equiv="refresh" content="0;url='relcurso.php'" /> if ($_POST['opcao']=='Cursos') {?> <meta http-equiv="refresh" content="0;url='cadcurso.php'" />
?> CADCURSOS.PHP ATUALIZADO include '../app/curso.app.php';?> <style type="text/css"> /* Estilo básico css */ p { width:500px; background-color: #EBEBEB; border-style:solid; border-width:thin; border-color:#818181; padding-left:10px;.incluir { background-image:url(../img/novo.png);.alterar { background-image:url(../img/pencil.png);.relatorio { background-image:url(../img/print.png);.menu { background-image:url(../img/home.png); </style> <form method=post> <h3>prototipo DO CADASTRO DE CURSOS</h3> <label>código DO CURSO</label> <input type='text' name='codcurso' value=" echo $cod;?>"> <input type='submit' name='opcao' value='carregar'> <label>descrição</label> <input type='text' name='nomecurso' value=" echo $nom;? >"> <br />
<input type='submit' name='opcao' class="incluir" value='incluir'> <input type='submit' name='opcao' class="alterar" value='alterar'> <input type='submit' name='opcao' class="relatorio" value='relatório'> <input type='submit' name='opcao' class="menu" value='menu'> </form> <br /> # Executando o método Listar e exibindo os dados na tela SEM OPÇAO $all = $objeto->listar(); echo "Lista de Cursos"; if ($all<>null) { echo "<table border=1>"; echo "<tr>"; echo "<td width='30'> CODIGO </td>"; echo "<td width='200'> CURSO </td>"; echo "</tr>"; foreach($all as $a) { $codigo = $a['codcurso']; $nome = $a['nomecurso']; echo "<tr>"; echo "<td width='30'> $codigo </td>"; echo "<td width='200'> $nome </td>"; echo "</tr>"; echo "</table>";?>