Técnico em Informática Integrado ao Ensino Médio Algoritmos e Banco de Dados Profa. Cleiane Gonçalves Oliveira TRABALHO FINAL 20 Pontos O trabalho final deverá constar os três seguintes tipos de funções: Cadastros simples; Cadastros com dados de outra(s) tabela(s); Relatórios. Para exemplificar o que e como o trabalho deve ser entregue, segue abaixo o detalhamento do protótipo Clínica Boa Saúde. O protótipo está disponível no link https://clinicaboasaude.000webhostapp.com/. Para cada atividade abaixo, adapte para o cenário da sua proposta. Observe que todas as atividades são feitas no computador local. A última coisa a ser feita é colocar os arquivos no servidor de hospedagem. 1. Banco de Dados O primeiro passo é criar o banco de dados no computador e as respectivas tabelas no MySQL (a partir do MySQL Workbench). No caso do protótipo clinicaboasaude o código SQL para criação do banco de dados está disponível neste link. Crie todas as tabelas e campos com letra maiúscula para não haver retrabalho no momento da hospedagem. 2. Estrutura do site Deve-se criar uma pasta com o nome do projeto dentro do caminho C:\XAMPP\htdocs. Dentro dessa pasta os arquivos deverão estar organizados da seguinte forma. Observe que dentro da pasta cadastro haverá uma pasta para cada tipo de cadastro existente. No exemplo, tem uma pasta para consulta, outra para médico e outra para paciente. 3. Arquivo index.php O arquivo index deverá conter os links para as funções do sistema. No caso do protótipo clinicaboasaude o index é igual o da figura abaixo. Os links abaixo da opção Cadastro deverão seguir os seguintes redirecionamentos: o link Medico tem que redirecionar para o arquivo cadastro/medico/medico_visualizar.php. O link Cliente tem que redirecionar para o arquivo cadastro/cliente/cliente_visualizar.php.
O link Consulta tem que redirecionar para o arquivo cadastro/consulta/consulta_visualizar.php. Já os links abaixo da opção Relatórios deverão redirecionar para os seguintes arquivos: Pacientes relatorios/relatorios_pacientes.php; Medicos relatorios/relatorios_medicos.php; Consultas relatorios/relatorios_consultas.php. 4. Arquivo conexao.php O arquivo conexao.php é responsável por executar o comando que associa os arquivos php ao banco de dados já existente no computador. Para isso é necessário saber o nome do banco de dados, qual o usuário e qual a senha. Nos laboratórios esses valores estão configurados como os da figura abaixo. O arquivo conexao.php deve ter o mesmo código que o da figura acima. 5. Cadastros simples Cada cadastro implica no gerenciamento de um determinado item. Como exemplo temos o item medico. O cadastro (simples) de médico implica em incluir, alterar, excluir e visualizar todos os médicos do sistema. Dentro da pasta cadastro/medico devem existir os seguintes arquivos.
Cada arquivo é detalhado nas seguintes seções. 5.1. medico_visualizar.php Este arquivo é o responsável por apresentar todos os médicos cadastrados no sistema como apresentado na figura abaixo. É para ele que o link no index (Cadastros Médicos) é direcionado. A partir desta tela será possível incluir um novo, alterar e excluir um existente. 5.1.1. O primeiro item é criar um link Voltar que redireciona de volta para o index.php. 5.1.2. Acrescente um link Novo Médico para o arquivo medico_incluir_formulario.php 5.1.3. Para apresentar a quantidade de médicos cadastrados é necessário consultar o banco de dados. Para isso, faça o include do arquivo conexao.php (linha 32 abaixo), escreva o código SQL que seleciona todos os dados dos médicos cadastrados (linha 31), envie ao banco com a função mysqli_query() (linha 33), e imprima quantas linhas o banco de dados retornou com a função mysqli_num_rows() (linha 34). 5.1.4. Em seguida, é preciso apresentar todos os médicos que o banco de dados retornou dentro de uma tabela. O código é apresentado na figura abaixo. (Linha 35) Primeiro testa se o banco de dados retornou alguma tupla, (linha 36 a 43) se sim, imprime o cabeçalho da tabela de resultados, (linha 44) enquanto existirem tuplas no resultado, (linha 45 a 54) imprime cada resultado em uma linha da tabela. Observe que foi criada uma coluna para a opção Alterar, e outra para a opção Excluir. Cada uma deve direcionar para o arquivo
medico_form_alterar.php e medico_deletar.php, respectivamente. Observe também que no link é enviado o CRM (chave primária) do médico. Esse valor fará parte da URL do link e enviado via GET para o arquivo especificado. Após todas as linhas serem inseridas, a tabela é fechada (linha 55). (linha 57) Caso não tenha nenhum médico cadastrado será impressa a mensagem que não há médicos cadastrados. (linha 58) A conexão com o banco de dados deve ser encerrada em todos os arquivos. 5.2. Medico_incluir_formulario.php Esse arquivo apresenta o formulário para inserir um novo médico. Ele é acessado a partir do arquivo medico_visualizar.php no link Novo Médico. 5.2.1. Primeiro deve ser incluído um link para o usuário voltar para o arquivo medico_visualizar.php. 5.2.2. Abaixo, deve ser criado um formulário com os campos correspondentes aos dados de cadastro do médico. O formulário deve direcionar os dados preenchidos para o arquivo medico_incluir_salvar.php, no seu action. O método (method) do formulário deve ser o POST. 5.3. medico_incluir_salvar.php Esse arquivo recebe os dados que foram preenchidos no arquivo medico_incluir_formulario.php e os cadastra no banco de dados. O código está na figura abaixo.
5.3.1. Primeiro receba os dados que foram enviados via post (linha 7 a 12). 5.3.2. Escreva o código SQL que faz o insert dos dados no banco de dados (linha 13). 5.3.3. Faça a conexão com o banco de dados (linha 15). 5.3.4. Execute o comando no banco e retorne se deu certo ou não (linha 16 a 23). 5.3.5. No final coloque um link para voltar para o arquivo medico_visualizar.php. Este arquivo apresenta o seguinte resultado na tela. 5.4. Medico_alterar_formulario.php Esse arquivo é aberto quando o usuário clica, na tela do arquivo medico_visualizar.php, na opção Alterar apresentada na mesma linha de cada médico. O link envia via GET o CRM do médico, que corresponde a sua chave primária. Esse arquivo busca os dados do médico no banco de dados, apresenta os dados no formulário para que o usuário possa alterar. A tela é a seguinte. 5.4.1. Inserir um link para voltar para o arquivo medico_visualizar.php 5.4.2. Receber o código via GET do médico selecionado (linha 10). 5.4.3. Fazer o comando SQL que seleciona aquele médico no banco de dados (linha 11). 5.4.4. Fazer a conexão com o banco e executar o código (linhas 12 e 13). 5.4.5. Caso o banco de dados consiga executar o comando (linha 14 e 15), deve ser apresentado um formulário com os mesmos campos (avaliar se precisa colocar a chave primária novamente) do arquivo medico_incluir_formulario.php. O action deve direcionar para o arquivo medico_alterar_salvar.php e o método deve ser o post (linha 17 a 24). Observe que antes do formulário o código php é finalizado?> e o que vem a seguir é só
comando html. No final do código html, linha 24, o código php é reaberto para encerrar as chaves do while e do if e encerrar a conexão com o banco de dados (linha 28). 5.4.6. Em cada campo do formulário o atributo value deve ser preenchido com o valor que já existe no banco de dados e que poderá sofrer alterações do usuário. Para isso deve ser feito o código apresentado nas linhas 18, 19, 20, 21 e 22 = value= <?php echo $row[ ENDERECO ];?> 5.5. Medico_alterar_salvar.php Os dados que foram escritos no formulário de alteração no arquivo medico_alterar_formulario.php são enviados via post para este arquivo. Os dados serão enviados para o banco de dados e feita a atualização do registro que já existe. 5.5.1. Os dados devem ser recebidos via POST (linhas 8 a 12). 5.5.2. Escreva o código SQL de alteração com os novos dados (linha 13), conecte com o banco de dados (linha 14) e envie o código para o banco (linha 15). 5.5.3. Imprima se funcionou ou não o código (linha 15 a 20). 5.5.4. Encerre a conexão com o banco de dados (linha 21). 5.5.5. Acrescente um link para voltar para o arquivo medico_visualizar.php. O resultado na tela é o seguinte. 5.6. Medico_deletar.php Essa opção está disponível no arquivo medico_visualizar.php ao lado dos dados de cada médico. Ao clicar o usuário estará excluindo o médico selecionado do banco de dados. 5.6.1. Conecte com o banco de dados (linha 2).
5.6.2. Receba via GET a chave primária do médico (linha 3). 5.6.3. Escreva o código SQL que deleta o médico do banco de dados (linha 4). 5.6.4. Envie o código para o banco de dados (linha 5). 5.6.5. Caso o médico tenha consultas registradas, o banco de dados não permitirá sua exclusão, retornando um erro. As linhas 5 a 10 imprimem se conseguiu excluir ou se não conseguiu por conta dessa situação. 5.6.6. Encerre a conexão com o banco de dados (linha 11). 5.6.7. Coloque um link para voltar para o arquivo medico_visualizar.php. 6. Cadastros com dados de outra(s) tabela(s); Nesses cadastros, no momento de incluir e alterar algum item do banco de dados, se torna necessário usar dados já existentes em alguma outra tabela. No exemplo do protótipo Clinica Boa Saúde, essa situação corresponde ao cadastro das consultas médicas que precisa informar qual é o paciente e qual é o médico que será atendido na consulta. A seguir os passos necessários, são bem semelhantes aos de cadastro simples. Dentro da pasta cadastro/medico devem existir os seguintes arquivos. Cada arquivo é detalhado nas seguintes seções. 6.1. consultas_cadastradas.php Este arquivo é o responsável por apresentar todas as consultas cadastradas no sistema como apresentado na figura abaixo. É para ele que o link no index (Cadastros Consultas) é direcionado. A partir desta tela será possível incluir um novo, alterar e excluir uma consulta existente.
As atividades para esse arquivo são idênticas às do medico_visualizar.php. A única diferença será o código SQL que será enviado ao banco e quais colunas da tabela serão apresentadas. O código SQL para esse exemplo é o da figura abaixo. As colunas da tabela devem corresponder aos dados que foram retornados nesta consulta. 6.2. Consulta_incluir_formulario.php Esse arquivo apresenta o formulário para inserir uma nova consulta. Ele é acessado a partir do arquivo consulta_cadastradas.php no link Nova Consulta. As atividades feitas no arquivo medico_incluir_formulario.php são as mesmas acrescentando as seguintes. 6.2.1. Select com os dados do médico O código correspondente é o apresentado abaixo. 6.2.1.1. Observe que o arquivo é um código html comum. Insira o comando select e também atribua um name para ele. Esse name vai definir a posição no POST no arquivo consulta_incluir_salvar.php(linha 8). Insira um primeiro option (linha 9) com a instrução que o usuário tem que selecionar um médico. 6.2.1.2. Abra a tag <?php para inserir o código que busca os dados do banco de dados.
6.2.1.3. Escreva o código SQL que retorna a chave primária e o nome de todos os médicos ordenados pelo nome (linha 11). 6.2.1.4. Faça a conexão com o banco de dados (linha 12). 6.2.1.5. Envia o código para o banco de dados (linha 13). 6.2.1.6. Caso o banco de dados retorne algum resultado (linha 14), para cada resultado imprima um option (linha 15 a 17). Cada option tem como atributo value o valor da chave primária, e o que é apresentado para o usuário é o nome do médico, nesse exemplo. 6.2.1.7. Encerre o código php (linha 19). 6.2.1.8. Encerre o select (linha 20). 6.2.2. Select com os dados do paciente O mesmo procedimento que foi feito para médico deverá ser feito para paciente, para montar o select de paciente. Abaixo é apresentado o código. Observe que não há necessidade de conectar novamente com o banco porque aproveita a mesma conexão que foi feita para médico. Observe também que esses dois códigos estão no mesmo arquivo. 6.3. consulta_incluir_salvar.php Idêntico ao medico_incluir_salvar.php. O código segue abaixo. Resultado na tela. 6.4. Consulta_alterar_formulario.php Os procedimentos são idênticos ao arquivo medico_alterar_formulario.php. Acrescentando os seguintes comandos para os selects.
6.4.1. Select de médico O médico já foi escolhido no momento do cadastro da consulta. É necessário apresentar qual foi o escolhido e permitir as outras opções de médico para o usuário alterar caso seja necessário. O código do Select é o apresentado a seguir. A única diferença em relação ao arquivo consulta_inserir_formulário.php é o que é apresentado na linha 30 a 32. Caso aquele option seja o que já foi escolhido pelo usuário, deve ser impresso o atributo selected dentro do option. 6.4.2. Select de paciente Idêntico ao select de médico. Código abaixo. 6.5. Consulta_alterar_salvar.php Idêntico ao medico_alterar_salvar.php. Segue o código. 6.6. Consulta_excluir.php Idêntico ao medico_deletar.php.
7. Hospedagem Após finalizar todo o sistema no computador local, deve-se colocar os arquivos no site de hospedagem onde já foi criada conta e domínio. Siga as seguintes tarefas: 7.1. Configurar o banco de dados Ao logar no servidor de hospedagem (https://www.000webhost.com), você terá as seguintes opções no topo da tela Escolha a opção Gerenciar Banco de Dados. 7.1.1. Será apresentada a tela a seguir caso já tenha algum banco de dados configurado. Ou terá somente a opção Novo Banco de Dados caso ainda não tenha definido nenhum. 7.1.2. Selecione a opção novo banco de dados caso ainda não tenha criado. Preencha o nome do banco, defina um nome de usuário e uma senha e clique em Criar. 7.1.3. Ao clicar em Criar será apresentada a tela anterior. Observe que o nome do BD e do usuário são alterados com um sufixo criado pelo servidor de hospedagem. Esses valores tem que ser alterados no arquivo conexao.php para o seu sistema funcionar (próximos passos. 7.1.4. Ao lado do nome do seu banco clique em Gerencie PhpMyAdmin. A tela abaixo será apresentada.
Informe o usuário e senha que foram criados no item 8.1.2. A tela a seguir será apresentada. 7.1.5. Clique sobre o nome do seu Banco de dados no menu à esquerda. Clique na aba SQL e cole o código do seu banco de dados. Clique em Executar. Lembre-se de deixar tudo em letra maiúscula para facilitar o funcionamento do seu sistema. Clique em Sair. 7.2. Upload dos arquivos 7.2.1. Na figura apresentada no item 8.1 clique na opção Gerenciador de Arquivos e depois em Fazer uploads de arquivo agora. 7.2.2. O gerenciador já abrirá dentro de uma pasta public_html (apresentada no topo da página). Essa pasta corresponde à pasta que você criou dentro do htdocs no seu computador. Também já existirá um arquivo chamado.htacess. Não o exclua, ele é necessário para o funcionamento do sistema. 7.2.3. Nessa pasta public_html faça o upload dos arquivos conexao.php e index.php. Basta clicar no ícone na parte direita superior da tela e procurar o arquivo no seu computador. 7.2.4. O arquivo conexao.php deve ser alterado com os dados do banco de dados do servidor de hospedagem. Clique duas vezes no arquivo e altere os dados. Clique em Save e Feche a janela.
7.2.5. O gerenciador de arquivos não faz upload de pastas. Assim é necessário criar as pastas que seu sistema possui (cadastros, relatórios, médicos, consultas, etc) manualmente. Basta clicar no ícone e dar o nome da pasta. Lembre que tem que ser o mesmo nome que existe no seu computador. 7.2.6. Clique em cada pasta e faça os uploads dos arquivos referentes a cada uma. No exemplo do protótipo a pasta public_html aparece da seguinte forma. 7.3. Testar o sistema Depois de tudo configurado acesse o domínio do seu site que aparece na página da figura 8.1 e verifique se todas as funções estão executando corretamente. Caso tenha algum erro, abra o arquivo pelo gerenciador de arquivos, clique duas vezes no arquivo e o altere direto no servidor de hospedagem. 7.4. Enviar o link Tudo correto? Envie o link do seu site para cleiane_oliveira@yahoo.com.br. Enviar também: o código do banco de dados e arquivo compactado da pasta do seu sistema.
DIVISÃO DE PONTOS Atividade Pontuação 1. Banco de Dados 2 2. Estrutura do Site 2 3. Index.php 1 4. Conexao.php 1 5. Cadastro simples 5.1 Medico_visualizar 2 5.2 Medico_incluir_formulario 1 5.3 Medico_incluir_salvar 1 5.4 Medico_alterar_formulario 1 5.5 Medico_alterar_salvar 1 5.6 Medico_deletar 1 6. Cadastro com dados de outras tabelas 6.1 consultas_cadastradas 2 6.2 consulta_incluir_formulario 1 6.3 consulta_incluir_salvar 1 6.4 consulta_alterar_formulario 1 6.5 consulta_alterar_salvar 1 6.6 consulta_excluir 1 7. Hospedagem 2 pontos extras TOTAL 20 pontos