existem. Isso é necessário pois o navegador
não envia os campos em branco, nem os
campos desmarcados.
Agora é só alterar a tabela para exibir todos os dados:
<table>
<tr>
<th>Tarefa</th>
<th>Descricao</th>
<th>Prazo</th>
<th>Prioridade</th>
<th>Concluída</th>
</tr>
<?php foreach ($lista_tarefas as $tarefa) : ?>
<tr>
<td><?php echo $tarefa['nome']; ?> </td>
<td><?php echo $tarefa['descricao']; ?> </td>
<td><?php echo $tarefa['prazo']; ?> </td>
<td><?php echo $tarefa['prioridade']; ?> </td>
<td><?php echo $tarefa['concluida']; ?> </td>
</tr>
<?php endforeach; ?>
</table>
Acesse o formulário e cadastre algumas tarefas. Veja como ficou a minha página
com duas tarefas cadastradas:
49
5.3. Conclusão do capítulo e do uso de sessões
Casa do Código
Figura 5.2: Formulário e página com novos campos para o cadastro de tarefas
5.3
Conclusão do capítulo e do uso de sessões
Neste momento temos um sistema de gerenciamento de tarefas já bem interessante.
Durante o desenvolvimento até aqui já foram usadas funcionalidades do PHP para
manter a sessão e para incluir arquivos com trechos de código. Graças a esta separa-
ção em arquivos o nosso projeto ficou mais legível e separamos as responsabilidades
de cada arquivo, um para tratar os dados e outro para exibir o formulário e a lista de
tarefas.
Nesta questão de separação de arquivos poderíamos ir além, separando um ar-
quivo para o formulário e outro para a lista de tarefas. Mas isso fica para você testar
e decidir se vai ficar mais organizado ou se vai separar demais as responsabilidades.
Por enquanto, nossa aplicação permite apenas a adição das tarefas e funciona
apenas enquanto o navegador está aberto, pois quando trocamos de navegador, ou
quando reiniciamos o navegador atual, a sessão se perde e com isso perdemos as
atividades cadastradas. Isso quer dizer que as sessões são ruins? Não! Isso quer
dizer apenas que elas não servem para o nosso problema atual, que é guardar a lista
de tarefas e acessar de outro navegador sem perder os dados. Mas em cenários onde
é necessário, por exemplo, guardar o login do usuário, uma sessão é ideal.
50
Casa do Código
Capítulo 5. Tratamento de diferentes campos de formulários
5.4
Resumo
Neste capítulo adicionamos novos campos ao formulário das tarefas e tratamos estes
campos através do PHP. Um ponto bem importante foi a separação do programa
em mais de um arquivo, sendo que cada um é responsável por uma parte do geral,
tornando-se menor e mais simples para manter.
Nos próximos capítulos vamos passar a guardar os dados em um banco de dados.
5.5
Desafios
Agora, mais alguns desafios para treinar e evoluir:
Continue a lista de contatos que está nos desafios do capítulo anterior. Além
do nome, do telefone e do e-mail de cada contato, adicione um campo para
descrição, um para a data de nascimento e um checkbox para dizer se o contato
é favorito ou não.
Separe as responsabilidades da lista de contatos, mantendo um arquivo para
cada, assim como fizemos na lista de afazeres.
51
Capítulo 6
Acessando e usando um banco de
dados
Nos últimos capítulos construímos uma lista de tarefas que funciona muito bem
quando usamos apenas um navegador e mantemos a sessão sempre aberta. Para a
nossa aplicação este não é o cenário ideal, por isso é necessário guardar nossos dados
em um local mais adequado, de onde vamos conseguir recuperá-los sempre que ne-
cessário, mesmo estando em outro navegador ou fechando o navegador e abrindo-o
novamente.
É para resolver este tipo de problema que entra o banco de dados e, no nosso
caso, o famoso MySQL.
Como nossa aplicação já tem uma estrutura bacana e já funciona bem usando
as sessões, o que precisamos fazer é trocar o uso das sessões pelo uso do banco de
dados. Por isso, vamos começar por criar o banco de dados, definindo quais dados
queremos guardar e faremos com que o PHP se conecte ao banco para poder inserir
e recuperar esses dados.
6.1. O banco de dados MySQL
Casa do Código
A manipulação do banco de dados é feita com a utilização de outra linguagem,
a SQL, que nos permite executar comandos para inserir, pesquisar e remover dados,
fazer relatórios etc. Neste livro veremos apenas um básico sobre a SQL, focando mais
nos comandos necessários para o desenvolvimento dos projetos. Se você ainda não
tem familiaridade com SQL, recomendo que também invista um tempo estudando
esta linguagem, pois você poderá usar SQL para trabalhar com diversos bancos de
dados além do MySQL, integrando com várias outras linguagens de programação
além do PHP.
6.1
O banco de dados MySQL
MySQL é um software livre para banco de dados. Isso significa que você pode usar o
MySQL em seus projetos e ainda pode contribuir com o desenvolvimento do próprio
MySQL, se assim desejar ou necessitar.
O MySQL é bastante usado em aplicações web por sua versatilidade e por ser
suportado em diversas plataformas e diferentes linguagens.
Por padrão, o MySQL não tem uma interface gráfica para administração e uti-