PI S8 DSW II DouglasARS
Índice
Apresentação
Olá Estudantes,
Entramos pela oitava semana, está que é a última semana com apresentação de novos conteúdos, vamos mostrar como utilizar filtros de campos em pesquisas SQL e também mostrar como excluir um registro a partir de um resultado de consulta. Para finalizar, vamos apresentar algumas maneiras de "como fazer um vídeo mostrando a tela do seu computador" que deve ser utilizado para apresentar o sistema que as equipes estão desenvolvendo na AO2. Fiquem atentos aos prazos e atividade finais.
Bons estudos a todos!
Prof. Douglas A.
Objetivo
- Como utilizar filtros de campos em pesquisas com SQL;
- Como excluir um registro;
- Como fazer videos mostrando a tela do seu computador.
Filtro de Campos
Uma coisa bastante utilizada em pesquisas de banco de dados são os filtros. Abaixo apresento como fazer filtros no formulário consultas de clientes do sistema exemplo.
A primeira coisa que fiz, foi ter mudado o método de chamar o formulário consulta clientes. Eu agora, inseri o método GET não chamando o formulário de Consulta Clientes diretamente. Veja como era antes e como ficou:
- Antes (cadclientes.php)
[...] <input name="listar" type="button" onClick="window.open('listaclientes.php','_self')" value="Consultar"> [...]
- Depois (cadclientes.php)
[...] <form action="listaclientes.php" method="get"> <input name="tipo" type="hidden" value="1" /> <input name="filtro" type="hidden" value="0" /> <input type="submit" value="Consultar" /> </form> [...]
Ao invés de simplesmente abrir a janela com o comando window.open, chamamos o formulário com o método GET, desta forma, o endereço da página vai ficar assim:
http://localhost/exemplo/listacclientes.php?tipo=1&filtro=0
Os parâmetro (variáveis e valores) que são passados para a página listaclientes.php, são tipo=1 e filtro=0. Quando chamamos esta página (listaclientes.php), está determinado que o tipo=1 serve para mostrar todos os registros. E que o filtro=0 significa que nenhum registro deverá ser filtrado.
No código da página listaclientes.php, temos algumas mudanças para saber se o filtro vai auto chamar a própria página ou a requisição veio da página anterior. O trecho de código abaixo mostra como montar esse auto chamamento.
<div > <form action="listaclientes.php" method="get"> <input name="tipo" type="hidden" value="1" /> <label for="filtro">Pesquisar:</label> <input type="text" name="filtro" size="50" id="filtro" value="" /> <input type="submit" value="Executar" /> </form> </div>
Figura 1- Tela com o campo Pesquisar (filtro).
[...] <div > <form action="listaclientes.php" method="get"> <input name="tipo" type="hidden" value="1" /> <label for="filtro">Pesquisar:</label> <input type="text" name="filtro" size="50" id="filtro" value="" /> <input type="submit" value="Executar" /> </form> </div> [...]
Desta maneira, quando se for pesquisar alguma nome de cliente, ele já coloca a informação na variável filtro e chama o próprio formulário.
Para se fazer o controle do formulário, basta que se monte a consulta SQL conforme o formulário foi chamado, se é pra fazer filtro ou não. Já foi deixado o código (quase pronto) para se poder escolher também o tipo de ordenamento dos campos.
- Vejam como ficou
<?php if ($_GET["tipo"]==1) { $query = "SELECT * FROM clientes a, cidades b WHERE a.id_cidade = b.id_cidade"; } if ($_GET["filtro"]!="0") { $query .= ' AND nm_cliente like "'.$_GET["filtro"].'%"'; } if ($_GET["tipo"]==1) { $query .= " ORDER BY nm_cliente"; } else { $query .= " ORDER BY id_cliente"; } $sql = mysql_query("$query") or print (mysql_error()); ?>
Observem neste trecho de código que foi capturado o conteúdo dos parâmetros tipo e filtro com o $_GET, e é montando a consulta conforme o resultado o valor recebido. Desta forma, se o filtro=0 é que esta página veio do formulário cadastro de clientes, quando for diferente de 0, é porque veio da própria página listaclientes.php, do formulário consulta, e que possui algum valor.
Exclusão de Registro
Para se excluir um registro do banco de dados MySQL, bem como em outros banco de dados padrão SQL, é enviar um comando DELETE especificando qual a tabela, nome do campo e identidade do campo que se quer excluir. Lembrando que a identidade do campo deve ser única no banco, se por exemplo você mandar apagar os clientes da cidade "Y" ele apagará todos os registros cujos clientes morem na cidade "Y". Portanto, cuidado ao apagar registros e é bom sempre ter uma confirmação. No nosso exemplo, não utilizamos confirmação, isso eu deixo pra vocês e mais tarde voltamos a falar sobre isso. Vamos ao código.
Primeiramente você deve criar uma função genérica para apagar qualquer registro de qualquer banco de dados. Desta forma não precisamos fazer isso dentro de cada página que tiver a opção de excluir. No sistema exemplo eu coloquei dentro do funcoes.php.
<?php function apagar($tabela, $registro_id, $registro) { $query = "DELETE FROM $tabela WHERE $registro_id = $registro"; $result = mysql_query($query) or die('Houve um erro'); } ?>
A função apagar recebe como parâmetros a tabela, o nome do campo (id) e o dado correspondente ao registro que se quer apagar.
Agora é só fazer a ligação para que, quando o formulário indique que o botão Excluir foi disparado, - você pode ver na última coluna mostrada na Figura 1 (Ação botão Excluir), o próprio formulário seja chamado e passe a tratar a solicitação e executando a ação de excluir o registro da tabela indicado. Vou mostrar o trecho de código que fica no listaclientes.php e comentar em seguida. Não se preocupem com o código fonte que vou tornar a disponibilizar lá no moodle.
[...] if ($_GET["tipo"]==9) { apagar('clientes', 'id_cliente', $_GET['id']); header("Location: listaclientes.php?tipo=1&filtro=0"); } [...]
Quando a página listacliente.php traz como parâmetro tipo=9 trata-se de uma exclusão. Assim, é executada a função apagar e a página é novamente chamada com o comando header mostrando como resultado a consulta sem o registro que foi excluído. Se você colocou a função apagar no arquivo funcoes.php, por exemplo, você deve colocar o include('funcoes.php'); no início da página listaclientes.php.
E para finalizar vamos ver como montar o botão Excluir dentro da tabela que é resultado da consulta pelos clientes. Lembrando que eu vou disponibilizar o código inteiro no moodle.
echo '<table border="1" cellpadding="5" cellspacing="0" >'; echo '<tr><th style="background: #ffdead; text-align: center;">Código</th>'; echo '<th style="background: #ffdead; text-align: left;">Nome</th>'; echo '<th style="background: #ffdead; text-align: left;">Endereço</th>'; echo '<th style="background: #ffdead; text-align: left;">Número</th>'; echo '<th style="background: #ffdead; text-align: left;">Complemento</th>'; echo '<th style="background: #ffdead; text-align: left;">CEP</th>'; echo '<th style="background: #ffdead; text-align: left;">Cidade</th>'; echo '<th style="background: #ffdead; text-align: left;">UF</th>'; echo '<th style="background: #ffdead; text-align: left;">Telefone</th>'; echo '<th style="background: #ffdead; text-align: left;">Celular</th>'; echo '<th style="background: #ffdead; text-align: left;">Ação</th></tr>'; while($exibe = mysql_fetch_assoc($sql)){ echo '<tr><td style="text-align: center;">'.$exibe['id_cliente'].'</td>'; echo '<td>'.$exibe['nm_cliente'].'</td>'; echo '<td>'.$exibe['endereco'].'</td>'; echo '<td>'.$exibe['numero'].'</td>'; echo '<td>'.$exibe['complemento'].'</td>'; echo '<td>'.$exibe['cep'].'</td>'; echo '<td>'.$exibe['nm_cidade'].'</td>'; echo '<td>'.$exibe['uf'].'</td>'; echo '<td>'.$exibe['telefone'].'</td>'; echo '<td>'.$exibe['celular'].'</td>'; echo '<td><input name="excluir" type="button" onClick="window.open(\'listaclientes.php?tipo=9&id='.$exibe['id_cliente'].'\',\'_self\')" value="Excluir"></td>'; } echo "</table>";
Basicamente foi criado mais a coluna Ação cujo conteúdo é botão Excluir visto na linha do input. Percebam que se chama listaclientes.php? e passa como parâmetros o tipo=9 & id='id_cliente'. Respectivamente, que eu quero excluir o registro indicado da tabela clientes.
Era isso. A confirmação se eu quero mesmo excluir ou não, fica pra próxima ou fica a sugestão de que vocês a implementem.
Um abraço a todos.
Prof. Douglas A.
Vídeos no PC
A Atividade Obrigatória 2 tem prazo até dia 06/04, portanto vocês tem poucos dias para a gravação do vídeo apresentando o que vocês fizeram. Para ajudar vocês, na sequencia vou colocar algumas videoaulas de como instalar esses programas que fazem a gravação desses vídeos e links para baixar os programas.
Free Screen Video Capture
Este programa (Windows) é extremamente fácil de utilizar. Você pode baixar e instalar diretamente do site da empresa. É importante que você ao iniciar uma gravação (Record), você defina a área da tela que será capturada. É importante também ter ajustado a sensibilidade do seu microfone. Neste programa não tem o opção de incluir legenda, mas é o mais fácil de utilizar. Abaixo disponibilizamos um vídeo de como baixar e também um link para baixar direto do site da empresa.
Para baixar:
Kazam
Kazam é um gravador de tela e ferramenta de screenshot para Linux, baseada no GStreamer. O programa suporta a gravação de toda a tela (com suporte a multi monitor), uma janela ou uma área, vem com suporte aos formatos de vídeo MP4 (H264), WebM (VP8) e AVI (RAW, Huffyuv e sem perdas JPEG), além de permitir framerate customizáveis, mostrar/ocultar o mouse durante a gravação, gravar o som dos alto-falantes e/ou microfone, atalhos de teclado, atraso configurável antes de capturar e salvar arquivo automaticamente.
Para saber mais sobre esse programa, clique nesse link.
Para saber instalar esse programa, clique nesse link.
Instalação no Ubuntu
Passo 1. Abra um terminal (CTRL + ALT + T);
Passo 2. Se ainda não tiver, adicione o repositório do programa com este comando:
$sudo add-apt-repository ppa:kazam-team/unstable-series
Passo 3. Atualize o APT com o comando:
$sudo apt-get update
Passo 4. Agora use o comando abaixo para instalar o programa;
$sudo apt-get install kazam python3-cairo python3-xlib
Uma vez instalado, inicie o programa digitando no Dash:kazam
Considerações Finais
Esta foi a última semana de conteúdos e é bom dar uma olhada nas atividades e prazos. Semana que vem termina o prazo para vocês postarem o vídeo e hoje na interação, vou falar um pouco sobre os softwares que vocês podem utilizar para terminar a AO2. Na avaliação presencial vamos seguir com a parte teórica abordada nas interações e no conteúdo da WiKi. Não vai fugir muito da AO3, só que com um pouco mais da programação e banco de dados, que vocês estão utilizando para desenvolver os sistemas por equipes. Por isso, participem, perguntem, se informem sobre os principais pontos da programação e;
Bons estudos!
Prof. Douglas A.
Referências
[1] http://www.sh2.com.br/sac/knowledgebase.php?action=displayarticle&id=35
<< | <> | >> |
---|