• Nenhum resultado encontrado

ANEXO 2: Usando o banco de dados Arquivo : tela_login.html Código Tela Arquivo : login.php... 10

N/A
N/A
Protected

Academic year: 2021

Share "ANEXO 2: Usando o banco de dados Arquivo : tela_login.html Código Tela Arquivo : login.php... 10"

Copied!
16
0
0

Texto

(1)

1

Usando MySQL com PHP

Sumário

Apresentação ... 2

Trabalhando com o MySQL ... 2

Ativação do MySQL ... 2

Criação do banco de dados ... 3

Criação da estrutura de uma tabela ... 3

Inserir dados numa tabela... 4

Verificação dos dados das tabelas ... 5

Sessões ... 7

Acesso ao MySQL com PHP ... 8

ANEXO 1: Cadastro de Alunos ... 9

TABELA: CURSOS ... 9 Estrutura ... 9 Valores ... 9 TABELA: ALUNOS ... 9 Estrutura ... 9 Valores ... 9

ANEXO 2: Usando o banco de dados ... 10

Arquivo : tela_login.html ... 10 Código ... 10 Tela ... 10 Arquivo : login.php ... 10 Código ... 10 Utilização ... 10 Arquivo : list_cursos.php ... 11 Código ... 11 Tela ... 12 Arquivo : ins_cursos.php ... 12 Código ... 12 Tela ... 12 Arquivo : ins_cursos2.php ... 13 Código ... 13 Utilização ... 13 Arquivo : edit_cursos.php... 14 Código ... 14 Tela ... 14 Arquivo : edit_cursos2.php ... 15 Código ... 15 Utilização ... 15 Arquivo : del_cursos2.php... 15

(2)

2 Código ... 15 Utilização ... 15 Arquivo : deslogar.php ... 16 Código ... 16 Utilização ... 16

Apresentação

Esse é um roteiro para uso geral, isto é, para criar qualquer banco de dados com quaisquer tabelas.

No entanto, algumas instruções específicas são adicionadas ao longo do texto de modo a permitir a criação de um banco de dados de exemplo. Essas instruções são precedidas pelo ícone

Trabalhando com o MySQL

Ativação do MySQL

Click sobre o ícone abaixo para ativar o WampServer

Aparecerá o ícone do WampServer na barra de tarefas. Espere que fique da cor verde.

Click sobre o ícone do WampServer na barra de tarefas. Aparecerá o menu de opções. Click sobre “Localhost”

Aparecerá no browser as opções do WampServer. Click no link “phpmyadmin” no grupo “Tools” no canto inferior esquerdo;

Aparecerá no browser a página de administração do PHP com a aba “Servidor mysql wampserver” selecionada. Clicl no link “Base de Dados” (em destaque na figura abaixo).

(3)

3

Criação do banco de dados

Digite o nome do banco de dados no campo onde aparece “Nome da base de dados” e click no botão “Criar”. Digite “CADASTRO”.

Será exibida uma mensagem informando que o banco de dados foi criado.

O nome do banco de dados será exibido à esquerda.

Criação da estrutura de uma tabela

Click sobre link com o nome do banco de dados.

Click no link “cadastro”

Será exibida a tela de criação de tabelas no banco de dados.

Preencha o nome da tabela a ser criada e o número de colunas que possui. Em seguida click no botão “Executar”. Digite “CURSOS” e “2”- veja o anexo 1 (Cadastro de Alunos)

(4)

4 Será exibida a página para criação da estrutura da tabela. Preencha os campos de acordo com a tabela a ser criada e click no botão “Guarda”.

Digite a estrutura da tabela “CURSOS” - veja o anexo 1 (Cadastro de Alunos)

Click no botão “-“ à esquerda do nome do banco de dados (no quadro à esquerda). Aparecerá a lista de tabelas do banco de dados. Observe que o nome da tabela criada é apresentado.

Repita os passos “Criação da estrutura de uma tabela” e crie a tabela “ALUNOS” - veja o anexo 1 (Cadastro de Alunos)

Inserir dados numa tabela

Click no link com o nome da tabela que deseja inserir dados no canto esquerdo. Click no link “cursos” associado ao banco de dados “cadastro”

(5)

5 É exibida uma página com os nomes dos campos da tabela selecionada. Digite os valores desejados de um registro na coluna “VALOR”. Em seguida click no botão “Executar”.

Digite os valores da tabela “CURSOS” - veja o anexo 1 (Cadastro de Alunos)

Repita os passos “Inserir dados numa tabela” a partir do segundo passo para inserir os dados restantes da tabela “CURSOS” - veja o anexo 1 (Cadastro de Alunos)

Repita os passos “Inserir dados numa tabela” para inserir todos os dados da tabela “ALUNOS” - veja o anexo 1 (Cadastro de Alunos)

Verificação dos dados das tabelas

Click sobre o nome de uma tabela no canto esquerdo.

Click sobre a tabela “alunos”.

Será exibido um resumo da tabela no quadro à direita. No início são exibidas algumas informações avançadas sobre a estrutura da tabela, que podem ser utilizadas principalmente por especialista em banco de dados na otimização do uso da tabela. Role a tela para exibir a parte que contém os dados armazenados na tabela. Observe que os dados exibidos correspondem à execução do comando SQL SELECT em destaque!

(6)

6 É possível exibir os dados nas tabelas através de comandos SQL SELECT específicos. Click no botão SQL na barra do quadro à direita.

É exibida a janela “Executa comando(s) SQL na base dados...” no quadro à direita. O quadro está preparado para executar qualquer comando SQL (SELECT, INSERT, UPDATE e DELETE) na tabela selecionada à esquerda, cujos campos também são exibidos no quadro “Columns”. Com um pouco de prática, é possível montar o comando SQL desejado apenas dando o click nos elementos adequados. Inicialmente esse quadro exibe o comando “SELECT *” para a tabela selecionada à esquerda.

Digite então o comando SQL desejado e click no botão “Executar”. digite o seguinte comando SQL:

SELECT a.matricula, a.nome_aluno, c.nome_curso FROM alunos a, cursos c

WHERE a.cod_curso = c.cod_curso ORDER BY a.nome_aluno

(7)

7

Sessões

O protocolo HTTP é stateless, ou seja, ele não mantém um estado/conexão. Toda a interação que o usuário fizer com um servidor Web acarretará em uma nova requisição e resposta.

As requisições são independentes e possuem um tempo de vida (conexão, envio de mensagem, resposta, encerramento da conexão). O servidor Web não é capaz de identificar se duas requisições vieram de um mesmo navegador, e o mesmo não faz nenhum gerenciamento em memória para que mensagens sejam compartilhadas entre requisições.

É para suprir esta necessidade que existem os cookies e sessões

O uso de sessões consiste de uma maneira de preservar dados através de acessos subsequentes, sendo particularmente útil em páginas que fazem acesso a banco de dados que depende de acesso autorizado, o que é obtido previamente através de uma tela de login.

Dessa forma, o acesso a uma página que faz acesso ao banco de dados só será liberado se o usuário passou por uma tela onde informou uma senha que libera o acesso ao banco de dados.

Os cookies têm um princípio similar às sessões, só que o armazenamento do estado é feito pelo navegador, e não pelo servidor Web.

Um sessão é criada pelo comando session_start().

É possível então registrar uma variável em uma sessão, tornando-a disponível para todas as páginas que serão acessadas até o término dessa sessão, sendo o modo mais usual adicionando diretamente entradas ao array superglobal $SESSION.

...

session_start();

$_SESSION["login"] = “FIJ”; ...

É possível verificar se a variável da sessão existe com o comando isset(), o que garante que a sessão tenha sido criada adequadamente.

...

if (!isset($_SESSION["login"])){ ...

} ...

NOTA: no caso de tela de login, a sessão só deve ser criada se o usuário obtiver a devida autorização.

Quando a sessão não é mais necessária, ela deve ser eliminada através do comando session_destroy(). Esse comando apenas elimina a sessão, mas não libera as variáveis alocadas na sessão. Para eliminar essas variáveis basta reiniciar o array $_SESSION atribuindo-lhe um array vazio.

(8)

8 ...

$_SESSION = array(); session_destroy(); ...

Acesso ao MySQL com PHP

O mysqli é uma extensão do PHP que visa aproveitar os recursos avançados do MySQL. Pode ser usado de forma convencional (procedural) como também de forma orientada a objetos.

Por ser mais prática, somente a forma orientada a objetos será utilizada.

Para acesso ao banco de dados, é necessário inicialmente instanciar (com a palavra new) a classe mysqli e no seu construtor informaremos os parâmetros para a conexão, que são:

 Servidor: identificação do servidor onde está o MySQL

 Usuário: identificação do usuário que possui acesso ao MySQL  Senha: senha do usuário para acesso ao MySQL

 Banco: identificação do banco de dados do MySQL utilizado

As funções mysqli_connect_errno() e mysqli_connect_error() podem ser utilizada em conjunto para verificar e informar se houve algum erro na conexão.

...

$servidor = "localhost"; $usuario = "root"; $senha = "";

$banco = "cadastro";

$mysqli = new mysqli($servidor, $usuario, $senha, $banco); if (mysqli_connect_errno()) {

printf("ERRO na conexão com o banco de dados: %s\n", mysqli_connect_error()); exit();

} ...

Uma vez estabelecida a conexão do banco de dados (através do objeto instaciado), o método query pode ser usado para executar um comando SQL sobre o banco de dados, que pode ser:

 Select  Insert  Update  Delete

Caso ocorra um erro na execução do comando SQL, a função mysqli_error retornará a mensagem de erro adequada.

...

$query = "SELECT * FROM tabela"; if (!$result->query($query)){

echo("ERRO no acesso ao banco de dados: " . mysqli_error($mysqli)); }

...

Quando um comando SELECT é utilizado, os registros (linhas) podem ser recuperados através do comando fetch_array. Quando não existe mais registro a ser lido (fim da tabela), esse comando informa que o fim da tabela foi alcançado.

O comando fetch_array possui um parâmetro que define o tipo de como os dados do registro lido são utilizados: (a) array numérico, (b) array associativo e (c) ambos, que são definidos pelos parâmetros MYSQLI_NUM,

MYSQLI_ASSOC e MYSQLI_BOTH respectivamente. Só será usado o tipo array numérico.

O acesso aos campos do registro lido do registro que é feito através da variável utilizada no comando query. ... while($linha = $result->fetch_array(MYSQLI_NUM)) { echo $linha[0]; ... } ...

(9)

9 Veja o ANEXO 2 para um exemplo completo usando o banco de dados criado anteriormente.

ANEXO 1: Cadastro de Alunos

TABELA: CURSOS

Estrutura

COLUNA TIPO TAMANHO NULO ÍNDICE

COD_CURSO INT 2 PRIMARY

NOME_CURSO VARCHAR 20 

Valores

COD_CURSO NOME_CURSO 1 INFORMATICA 2 ENFERMAGEM 3 ADMINISTRACAO

TABELA: ALUNOS

Estrutura

COLUNA TIPO TAMANHO NULO ÍNDICE

MATRICULA INT 3 PRIMARY

NOME_ALUNO VARCHAR 20 

COD_CURSO INT 2 

Valores

MATRICULA NOME_ALUNO COD_CURSO

123 JOAO 1

125 MARIA 1

231 JOSE 2

242 CARLOS 1

(10)

10

ANEXO 2: Usando o banco de dados

Arquivo : tela_login.html

Código

<html> <head> <title>LOGIN</title> </head> <body> <h2>Login</h2>

<form name="logar" action="login.php" method="POST"> Usuário: <input type="text" name="login"><p> Senha: <input type="password" name="senha"><p> <input type="submit" name="submit" value="OK"> </form> </body> </html>

Tela

Arquivo : login.php

Código

<?php $login = $_POST["login"]; $senha = $_POST["senha"];

if ($login=="FIJ" && $senha=="fij123"){ $dia = date('d'); $mes = date('n'); $ano = date('Y'); $data_login=$dia."/".$mes."/".$ano; session_start(); $_SESSION["login"] = $login; $_SESSION["data_login"] = $data_login; header ('Location: list_cursos.php'); }

else{

header ('Location: tela_login.html'); }

?>

Utilização

(11)

11

Arquivo : list_cursos.php

Código

<?php

session_start();

if (!isset ($_SESSION["login"]) and !isset ($_SESSION["senha"])){ header("location:tela_login.html"); } ?> <htnl> <head> <title>Cadastro de Cursos</title> </head> <body>

[Usuário <b><?php echo $_SESSION["login"]; ?></b> conectado <?php echo $_SESSION["data_login"]; ?>]<p> <h2>Cursos: listar</h2>

Opções: <a href="ins_cursos.php">Inserir</a> | <a href="list_alunos.php">ALUNOS</a> | <a href="deslogar.php">SAIR</a><p> <?php $servidor = "localhost"; $usuario = "root"; $senha = ""; $banco = "cadastro";

$mysqli = new mysqli($servidor, $usuario, $senha, $banco);

if (mysqli_connect_errno()) {

printf("ERRO na conexão com o banco de dados: %s\n", mysqli_connect_error()); exit(); } ?> <table> <tr> <td><b>Cod</b></td> <td><b>Nome</b></td> <td><b>Editar</b></td> <td><b>Excluir</b></td> </tr> <?php

$query = "SELECT * FROM cursos";

if (!$result = $mysqli->query($query)){

echo("ERRO no acesso ao banco de dados: " . mysqli_error($mysqli)); }else{ while($linha = $result->fetch_array(MYSQLI_NUM)){ ?> <tr> <td><?php echo $linha[0]; ?></td> <td><?php echo $linha[1]; ?></td> <td> <center>

<a href="edit_cursos.php?cod=<?php echo $linha[0]; ?>">[]</a> </center>

</td> <td> <center>

<a href="del_cursos2.php?cod=<?php echo $linha[0]; ?>" 

onclick="return confirm('Confirma a exclusão?');">[]</a> </center>

</td> </tr> <?php

(12)

12 } $result->close(); $mysqli->close(); } ?> </table> </body> </html>

Tela

Arquivo : ins_cursos.php

Código

<?php session_start();

if (!isset ($_SESSION["login"]) and !isset ($_SESSION["senha"])){ header("location:tela_login.html"); } ?> <html> <head> <title>Cadastro de Cursos</title> </head> <body>

[Usuário <b><?php echo $_SESSION["login"]; ?></b> conectado <?php echo $_SESSION["data_login"]; ?>]<p> <h2>Cursos: inserir</h2>

<form name="inserir" action="ins_cursos2.php" method="POST"> Código: <input type="text" name="codigo"><p>

Nome: <input type="text" name="nome"><p>

<input type="submit" name="submit" value="Inserir"> </form>

</body> </html>

Tela

(13)

13

Arquivo : ins_cursos2.php

Código

<?php

session_start();

if (!isset ($_SESSION["login"]) and !isset ($_SESSION["senha"])){ header("location:tela_login.html"); } $servidor = "localhost"; $usuario = "root"; $senha = ""; $banco = "cadastro";

$mysqli = new mysqli($servidor, $usuario, $senha, $banco);

if (mysqli_connect_errno()) {

printf("ERRO na conexão com o banco de dados: %s\n", mysqli_connect_error()); exit();

}

$cod = $_POST["codigo"]; $nome = $_POST["nome"]; if (!is_numeric($cod)) {

printf("ERRO ao inserir no banco de dados: campo chave inválido"); exit();

}

$query = "INSERT INTO CURSOS (COD_CURSO, NOME_CURSO) VALUES ($cod, '".$nome."')"; if (!$mysqli->query($query)){

echo("ERRO ao inserir no banco de dados: " . mysqli_error($mysqli)); }else{

header("location:list_cursos.php"); }

?>

Utilização

(14)

14

Arquivo : edit_cursos.php

Código

<?php

session_start();

if (!isset ($_SESSION["login"]) and !isset ($_SESSION["senha"])){ header("location:tela_login.html"); } $servidor = "localhost"; $usuario = "root"; $senha = ""; $banco = "cadastro";

$mysqli = new mysqli($servidor, $usuario, $senha, $banco); if (mysqli_connect_errno()) {

printf("ERRO na conexão com o banco de dados: %s\n", mysqli_connect_error()); exit();

}

$query = "SELECT * FROM cursos WHERE cod_curso=".trim($_GET["cod"]); $result = $mysqli->query($query); $linha = $result->fetch_array(MYSQLI_NUM); ?> <html> <head> <title>Cadastro de Cursos</title> </head> <body>

[Usuário <b><?php echo $_SESSION["login"]; ?></b> conectado <?php echo $_SESSION["data_login"]; ?>]<p> <h2>Cursos: editar</h2>

<form name="inserir" action="edit_cursos2.php" method="POST">

Código: <input type="text" readonly name="codigo" value="<?php echo $linha[0];?>"><p> Nome: <input type="text" name="nome" value="<?php echo $linha[1];?>"><p>

<input type="submit" name="submit" value="Alterar"> </form>

</body> </html>

Tela

(15)

15

Arquivo : edit_cursos2.php

Código

<?php

session_start();

if (!isset ($_SESSION["login"]) and !isset ($_SESSION["senha"])){ header("location:tela_login.html"); } $servidor = "localhost"; $usuario = "root"; $senha = ""; $banco = "cadastro";

$mysqli = new mysqli($servidor, $usuario, $senha, $banco);

if (mysqli_connect_errno()) {

printf("ERRO na conexão com o banco de dados: %s\n", mysqli_connect_error()); exit();

}

$cod = $_POST["codigo"]; $nome = $_POST["nome"];

$query = "UPDATE cursos SET nome_curso='".$nome."' WHERE cod_curso=".$cod; if (!$mysqli->query($query)){

echo("ERRO ao alterar no banco de dados: " . mysqli_error($mysqli)); }else{

header("location:list_cursos.php"); }

?>

Utilização

A partir do arquivo edit_cursos.php

Arquivo : del_cursos2.php

Código

<?php

session_start();

if (!isset ($_SESSION["login"]) and !isset ($_SESSION["senha"])){ header("location:tela_login.html"); } $servidor = "localhost"; $usuario = "root"; $senha = ""; $banco = "cadastro";

$mysqli = new mysqli($servidor, $usuario, $senha, $banco);

if (mysqli_connect_errno()) {

printf("ERRO na conexão com o banco de dados: %s\n", mysqli_connect_error()); exit();

}

$cod = $_GET["cod"];

$query = "DELETE FROM cursos WHERE cod_curso=".$cod; if (!$mysqli->query($query)){

echo("ERRO ao excluir no banco de dados: " . mysqli_error($mysqli)); }else{

header("location:list_cursos.php"); }

?>

Utilização

(16)

16

Arquivo : deslogar.php

Código

<?php session_start(); $_SESSION = array(); session_destroy(); header("Location: tela_login.html"); ?>

Utilização

Referências

Documentos relacionados

O Portal da Transparência do Governo Federal (2013) explicita o controle social previsto nas prefeituras e convida o cidadão a exercer o seu papel de fiscal, reafirmando

Cite this article as: Silva Júnior et al.: COPD Assessment Test (CAT) score as a predictor of major depression among subjects with chronic obstructive pulmonary disease and

Os resultados relativos ao estudo dos preditores de VAD sugerem um fraco poder preditor dos parâmetros avaliados na consulta pré-anestésica, sendo que, apenas na classificação

As coletas foram realizadas mensalmente, exceto no momento de uma rápida troca na população de mosquitos, uma vez que as cap- turas eram realizadas cada 2 ou 3

Para este momento, utilizou-se um roteiro do tipo semi-estruturado, com questões abordando o processo e a organização do trabalho da equipe que realiza o exame cadavérico

(1967) para o corpo de nefelina sienito, e, levando em consideração que a gênese dos corpos de traquito e fonolito estão associadas às rochas alcalinas da Ilha do Cabo Frio,

A baixa taxa de desconto ao longo dos anos de produção do campo, para o cálculo da função objetivo, aliada a baixa produção de água que a locação de

Brahman a Campo Gir (dupla aptidão) Gir Leiteiro Pré-classificação Nelore Sindi 03.05 (Quinta-feira) Brahman Guzerá Nelore Sindi Tabapuã Campeonato Modelo Frigorífico