0% acharam este documento útil (0 voto)
253 visualizações18 páginas

Projeto1 Cadastro Clientes PHP - Codigo

Este documento fornece instruções para criar um sistema de cadastro de clientes usando PHP e MySQL. Resume as seguintes informações essenciais: 1. Detalha a criação de um banco de dados e tabela para armazenar dados de clientes. 2. Fornece códigos PHP para conexão com o banco de dados, inserção, exclusão, leitura e atualização de registros. 3. Explica a estrutura de pastas do projeto e arquivos incluídos para cabeçalho, rodapé e

Enviado por

sergio salgado
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
253 visualizações18 páginas

Projeto1 Cadastro Clientes PHP - Codigo

Este documento fornece instruções para criar um sistema de cadastro de clientes usando PHP e MySQL. Resume as seguintes informações essenciais: 1. Detalha a criação de um banco de dados e tabela para armazenar dados de clientes. 2. Fornece códigos PHP para conexão com o banco de dados, inserção, exclusão, leitura e atualização de registros. 3. Explica a estrutura de pastas do projeto e arquivos incluídos para cabeçalho, rodapé e

Enviado por

sergio salgado
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 18

SUMÁRIO

Sumário ................................................................................................... 1

1 BANCO DE DADOS .......................................................................... 2

1.1 db_cadastro.sql ........................................................................... 2

1.2 conexão.php ................................................................................ 4

1.3 create.php ................................................................................... 4

1.4 delete.php.................................................................................... 6

1.5 read.php ...................................................................................... 6

1.6 update.php .................................................................................. 7

2 Imagens ............................................................................................. 8

3 lib ....................................................................................................... 8

4 includes .............................................................................................. 9

4.1 header.inc.php ............................................................................. 9

4.2 footer.inc.php ............................................................................. 10

4.3 menu.inc.php ............................................................................. 11

5 Arquivos criados na raiz do projeto .................................................. 12

5.1 index.php ................................................................................... 12

5.2 consultas.php ............................................................................ 14

5.3 editar.php .................................................................................. 15

5.4 confirm.php................................................................................ 17
AULA PHP
CADASTRO DE CLIENTES.

1 BANCO DE DADOS

1.1 DB_CADASTRO.SQL
phpMyAdmin
SQL
Create database if not existis db_cadastro default character set utf8 defaut
1collate utf8_general_ci;

Aqui podemos dar CTRL+ENTER ou clicar no botão executar

E já temos nosso db_cadstro criado.

1 O que significa collation no MySQL?


MySQL: Descobrindo o collation e o charset de uma tabela ou banco de dados. Um
Charset (character set) é um conjunto de símbolos e codificações. Um Collation é um conjunto
de regras para comparar caracteres em um conjunto de caracteres (charset).

2
Agora clicamos na base de dados e selecionamos novamente SQL para
criar a nossa tabela

Vamos então criar nossa tabela tb_clientes:


CREATE TABLE if NOT EXISTS tb_clientes()DEFAULT CHARACTER
SET utf8 DEFAULT COLLATE utf8_general_ci;
Dentro dos parênteses vamos definir os campos da nossa tabela.
Que são:
id int AUTO_INCREMENT NOT null PRIMARY KEY,
nome varchar(40) NOT null,
email varchar(50) NOT null UNIQUE,
telefone varchar(15) NOT null

E como na criação do nosso db_cadastro podemos apertar CTRL+ENTER


ou clicar no botão executar.

3
Como podemos ver temos nossa tabela criada e selecionando estrutura
podemos ver os campos da nossa tabela.

1.2 CONEXÃO.PHP

<?php
$utf8 = header("Content-Type: text/html; charset=utf-8");
$link = new mysqli('localhost','root','','db_cadastro');
$link->set_charset('utf8');

1.3 CREATE.PHP

<?php
Session_start();
include_once 'conexao.php';
$nome = filter_input(INPUT_POST, 'nome',
FILTER_SANITIZE_SPECIAL_CHARS);

$email = filter_input(INPUT_POST, 'email',


FILTER_VALIDATE_EMAIL);

$telefone = filter_input(INPUT_POST, 'telefone',


FILTER_SANITIZE_NUMBER_INT);

4
$querySelect = $link->query("select email from tb_clientes");
$array_email =[];

while($emails = $querySelect->fetch_assoc()):
$emails_existentes = $emails['email'];

array_push($array_email, $emails_existentes);
endwhile;

if(in_array($email, $array_email)):
$_SESSION['msg'] = "<p class='center red-text'>".'Já existe
um cliente cadastrado com esse e-mail.'."</p>";
header("Location:../index.php");

else:
$querInsert = $link->query("insert into tb_clientes
values(default, '$nome','$email','$telefone')");
$affected_rows = mysqli_affected_rows($link);

if($affected_rows > 0):


$_SESSION['msg'] = "<p class='center green-
text'>".'Cadastro efetuado com sucesso!'."<br>";
header("Location:../index.php");
endif;
endif;

5
1.4 DELETE.PHP

<?php
include_once 'conexao.php';

$id = filter_input(INPUT_GET, 'id',


FILTER_SANITIZE_SPECIAL_CHARS);
$queryDelete = $link->query("delete from tb_clientes where
id='$id'");

if(mysqli_affected_rows($link) > 0):


header("Location:../consultas.php");
endif;

1.5 READ.PHP

<?php
include_once 'conexao.php';
$querySelect = $link->query("select * from tb_clientes");
while($registros = $querySelect->fetch_assoc()):
$id = $registros['id'];
$nome = $registros['nome'];
$email = $registros['email'];
$telefone = $registros['telefone'];

echo "<tr>";
echo "<td>$nome</td><td>$email</td><td>$telefone</td>";
echo "<td><a href='editar.php?id=$id'><i class='material-
icons'>edit</i></a></td>";

6
echo "<td><a href='confirm.php?id=$id'><i class='material-
icons'>delete</i></a></td>";

echo "</tr>";
endwhile;

/**ARQUIVO ORIGINAL
* echo "<td><a href='banco_de_dados/delete.php?id=$id'><i
class='material-icons'>delete</i></a></td>";
*/

1.6 UPDATE.PHP

<?php
session_start();
include_once 'conexao.php';
$id = $_SESSION['id'];

$nome = filter_input(INPUT_POST, 'nome',


FILTER_SANITIZE_SPECIAL_CHARS);

$email= filter_input(INPUT_POST, 'email',FILTER_VALIDATE_EMAIL);

$telefone= filter_input(INPUT_POST,
'telefone',FILTER_SANITIZE_NUMBER_INT);

$queryUpdate = $link->query("update tb_clientes set


nome='$nome', email='$email', telefone='$telefone' where
id='$id'");
$affected_rows = mysqli_affected_rows($link);

7
If($affected_rows > 0):
$_SESSION['msg'] = "<p class='center green-text'>".'Atualização
realizada com sucesso!'."<br>";

header("Location:../consultas.php");

else:
$_SESSION['msg'] = "<p class='center red-text'>".'Atualização
não realizada!'."<br>";

header("Location:../consultas.php");

endif;

2 IMAGENS

3 LIB

Como o objetivo dessa disciplina não é html, css, bootstrap ou qualquer


outro framework, e para que a gente não precise dedicar muito tempo na
formatação CSS vamos utilizar o framework MATERIALIZE.
Vamos acessar o site https://materializecss.com/
Clica no botão GET STARTED

8
Encontre a opção METERIALIZE e selecione o arquivo para download e
baixe o arquivo que vai estar compactado. Selecione a pasta lib do nosso projeto
para salvar o arquivo.
Após salvar descompactar o arquivo na pasta lib, vamos agora acessar o
site https://jquery.com/
Que apesar do materialize a partir da versão 1.0 não depende mais do
jquery vamos utilizá-lo, porque usando o jquery é só colocar o nome da classe e
a inicialização é bem mais fácil.
Vamos na aba downloads. E selecionamos o link:
Download the compressed, production jQuery 3.6.0
Clicamos com o botão direito do mouse e selecionamos salvar como e
selecione a pasta LIB\ MATERIALIZE\ JS e salve o arquivo,

4 INCLUDES

4.1 HEADER.INC.PHP
O arquivo header.inc.php vamos colocar uma estrutura base para
darmos início ao nosso projeto.
Agora vamos voltar para a página:
https://materializecss.com/getting-started.html
e vamos procurar por HTML Setup, e vamos copiar o link
fonts.googleapis.com
Vamos então adicionar esse link no nosso código header.inc.php

<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">

<!--Import Google Icon Font-->

9
<link
href="https://fonts.googleapis.com/icon?family=Material+Icons"
rel="stylesheet">

<!--CSS do MATERIALIZE-->
<link rel="stylesheet"
href="lib/materialize/css/materialize.min.css">

<title></title>
</head>
<body>

4.2 FOOTER.INC.PHP

Agora vamos importar os arquivos jquery e JavaScript para o arquivo


footer.inc.php

<!--ARQUIVOS JQUERY E JAVASCRIPT-->


<script type="text/javascript"
src="lib/materialize/js/jquery-3.6.0.min.js"></script>
<script type="text/javascript"
src="lib/materialize/js/materialize.min.js"></script>

<!-- INICIALIZAÇÃO JQUERY -->


<script type="text/javascript">
$(document).ready(function() {

});
</script>
</body>
</html>

10
Para testar vamos no arquivo index.php, abrir um bloco php e colocar a
função include_once chamando o arquivo header.inc.php
<?php include_once 'includes/header.inc.php' ?>

inserir uma tag <nav> apenas a nível de teste para ver se o materialize
está funcionando.
<nav></nav>

E colocar novamente a função include_once chamando o arquivo


footer.inc.php
<?php include_once 'includes/footer.inc.php' ?>
Só abrir e fechar a tag, e depois salvar.
Após salvar o arquivo vamos abrir no navegador:

4.3 MENU.INC.PHP

Bom agora vamos criar então o nosso menu de navegação pois teremos
várias telas como a tela de editar, listar os registros...

<nav class="blue-grey">
<div class="nav-wrapper container">
<div class="brand-logo light">Sistema de Cadastro</div>

<ul class="right">
<li><a href="index.php"><i class="material-icons
left">account_circle</i>Cadastro</a></li>

<li><a href="consultas.php"><i class="material-icons


left">search</i>Consultas</a></li>

</ul>
</div>
</nav>

11
5 ARQUIVOS CRIADOS NA RAIZ DO PROJETO

5.1 INDEX.PHP
<?php session_start() ?>
<?php include_once 'includes/header.inc.php' ?>
<?php include_once 'includes/menu.inc.php' ?>

<!--FORMULÁRIO DE CADASTRO-->
<div class="row container">
<p>&nbsp;</p>
<form action="banco_de_dados/create.php" method="POST" class="col
s12">

<fieldset class="formulario" style="padding: 15px">

<legend><img src="imagens/avatar.png" alt="[imagem]"


width="100"></legend>

<h5 class="blue-grey-text center">Cadastro de


Clientes</h5>

<?php
if (isset($_SESSION['msg'])) :
echo $_SESSION['msg'];
session_unset();
endif;
?>

<!--CAMPO NOME-->
<div class="input-field col s12">

<i class="material-icons prefix">account_circle</i>

<input type="text" name="nome" id="nome"


maxlength="40" required autofocus>

12
<label for="nome">Nome do Cliente</label>

</div>

<!--CAMPO EMAIL-->
<div class="input-field col s12">

<i class="material-icons prefix">mail</i>

<input type="email" name="email" id="email"


maxlength="50" required>

<label for="email">Email do Cliente</label>


</div>

<!--CAMPO TELEFONE-->
<div class="input-field col s12">

<i class="material-icons prefix">phone</i>

<input type="tel" name="telefone" id="telefone"


maxlength="15" required>

<label for="telefone">Telefone do Cliente</label>

</div>

<!--BOTÕES-->
<div class="imput-field col s12">

<input type="submit" value="cadastrar" class="btn


blue">

13
<input type="reset" value="limpar" class="btn
red">

</div>
</fieldset>
</form>
</div>

<?php include_once 'includes/footer.inc.php' ?>

5.2 CONSULTAS.PHP
<?php session_start() ?>
<?php include_once 'includes/header.inc.php' ?>
<?php include_once 'includes/menu.inc.php' ?>

<div class="row container">


<div class="col s12">
<h5 class="light">Consultas</h5><hr>

<?php
if (isset($_SESSION['msg'])) :
echo $_SESSION['msg'];
session_unset();
endif;
?>

<table class="striped">
<thead>
<tr>
<th>Nome</th>
<th>Email</th>
<th>Telefone</th>
</tr>
</thead>

14
<tbody>
<?php
include_once 'banco_de_dados/read.php'
?>
</tbody>
</table>
</div>
</div>
<?php include_once 'includes/footer.inc.php' ?>

5.3 EDITAR.PHP

<?php session_start() ?>


<?php include_once 'includes/header.inc.php' ?>
<?php include_once 'includes/menu.inc.php' ?>

<div class="row container">


<div class="col s12">
<h5 class="light">Edição de Registros</h5><hr>
</div>
</div>

<?php
include_once 'banco_de_dados/conexao.php';
$id = filter_input(INPUT_GET, 'id', FILTER_SANITIZE_NUMBER_INT);
$_SESSION['id'] = $id;
$querySelect = $link->query("select * from tb_clientes where
id='$id'");

15
while($registros=$querySelect->fetch_assoc()):
$nome=$registros['nome'];
$email=$registros['email'];
$telefone=$registros['telefone'];
endwhile;
?>

<!--FORMULÁRIO DE ATUALIZAÇÃO DE CADASTRO-->


<div class="row container">
<p>&nbsp;</p>
<form action="banco_de_dados/update.php" method="POST" class="col
s12">
<fieldset class="formulario" style="padding: 15px">

<legend><img src="imagens/avatar.png" alt="[imagem]"


width="100"></legend>

<h5 class="blue-grey-text center">Alteração</h5>

<!--CAMPO NOME-->
<div class="input-field col s12">
<i class="material-icons prefix">account_circle</i>
<input type="text" name="nome" id="nome" value="<?php
echo $nome ?>" maxlength="40" required autofocus>
<label for="nome">Nome do Cliente</label>
</div>

<!--CAMPO EMAIL-->
<div class="input-field col s12">
<i class="material-icons prefix">mail</i>
<input type="email" name="email" id="email"
value="<?php echo $email ?>" maxlength="50" required>
<label for="email">Email do Cliente</label>
</div>

<!--CAMPO TELEFONE-->

16
<div class="input-field col s12">
<i class="material-icons prefix">phone</i>
<input type="tel" name="telefone" id="telefone"
value="<?php echo $telefone ?>" maxlength="15" required>
<label for="telefone">Telefone do Cliente</label>
</div>

<!--BOTÕES-->
<div class="imput-field col s12">
<input type="submit" value="alterar" class="btn blue">
<a href="consultas.php" class="btn red">cancelar</a>
</div>
</fieldset>
</form>
</div>

<?php include_once 'includes/footer.inc.php' ?>

5.4 CONFIRM.PHP

<?php session_start();
include_once 'includes/header.inc.php';
include_once 'includes/menu.inc.php';
$id = filter_input(INPUT_GET, 'id', FILTER_SANITIZE_NUMBER_INT);
?>

<div class="row">
<div class="col s12 m6">
<div class="card red darken-1">
<div class="card-content white-text">
<p>Você tem certeza de que deseja excluir esse
registro? Essa alteração não pode ser desfeita.</p>
</div>

17
<div class="card-action">
<?php

echo "<td><a
href='banco_de_dados/delete.php?id=$id'><i class='waves-effect waves-
light btn'><i class='material-icons
left'>thumb_up</i>Sim</i></a></td>";

echo "<td><a href='consultas.php?id=$id'><i


class='waves-effect waves-light btn'><i class='material-icons
left'>thumb_down</i>Não</i></a></td>";

?>
</div>
</div>
</div>
</div>

<?php include_once 'includes/footer.inc.php' ?>

18

Você também pode gostar