Created
November 9, 2018 18:10
-
-
Save uchoamaster/5900a5c337dc33b1196d2c846455204a to your computer and use it in GitHub Desktop.
curso php basico
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
include('configuracao.php'); | |
include('db.php'); | |
include('usuarios.php'); | |
include('produtos.php'); | |
function getPagina(){ | |
$url = $_SERVER['REQUEST_URI']; | |
//tratamento de url | |
$url = explode("?",$url); // nesse momento ele vira um array | |
$url = $url[0]; // agora consigo tratar o elemento busca | |
$metodo = $_SERVER['REQUEST_METHOD']; | |
if ($metodo == "GET") { | |
switch($url){ | |
case "/": | |
$produtos = getProdutos(); | |
include("Paginas/home.php"); | |
break; | |
case "/home": | |
$produtos = getProdutos(); | |
include("Paginas/home.php"); | |
break; | |
case "/sobre": | |
include("Paginas/sobre.php"); | |
break; | |
case "/contato": | |
include("Paginas/contato.php"); | |
break; | |
case "/busca": | |
$produtos = buscaProdutos($_GET['busca']); | |
include("Paginas/home.php"); | |
break; | |
case "/produto/editar": | |
$produtoEdit = buscaProdutoId($_GET['id']); | |
$produtos = getProdutos(); | |
$editando = true; | |
include("Paginas/home.php"); | |
//var_dump($produtoEdit);exit; verificar se está passando os dados corretamente e trazendo eles | |
break; | |
default: | |
$produtos = getProdutos(); | |
include("Paginas/home.php"); | |
break; | |
} | |
} | |
if ($metodo == "POST") { | |
switch($url){ | |
case "/produto/adicionar": | |
//var_dump($_POST);exit; | |
if(!adicionarProdutos($_POST)){ //com o sinal de esclamação eu estou querendo negar essa expressão | |
//var_dump("OK"); | |
$msg = "Erro ao salvar o registro!"; | |
$produtos = getProdutos(); | |
include("Paginas/home.php"); | |
break; | |
} | |
header('location:../'); | |
break; | |
case "/produto/salvar": | |
//var_dump($_POST);exit; | |
if(!salvarProduto($_POST)){ //com o sinal de esclamação eu estou querendo negar essa expressão | |
//var_dump("OK"); | |
$msg = "Erro ao atualizar o registro!"; | |
$produtos = getProdutos(); | |
include("Paginas/home.php"); | |
break; | |
} | |
header('location:../'); | |
break; | |
default: | |
$produtos = getProdutos(); | |
include("Paginas/home.php"); | |
break; | |
} | |
} | |
} | |
//função para debugar as atualizações | |
//return include ("Paginas/home.php"); | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<h2><?php echo getInfo("titulo") ?></h2> | |
<p><?php echo getInfo("descricao") ?></p> | |
<hr> | |
<h2>Pesquisar</h2> | |
<form action="busca" method="GET" accept-charset="utf-8"> | |
<input type="text" name="busca" placeholder="Busca"> | |
<button>Pesquisar</button> | |
</form> | |
<h2>Lista de Produtos</h2> | |
<ul> | |
<!-- operadores básicos do php --> | |
<?php foreach($produtos as $produto): ?> | |
<!-- com esse comando eu consigo trazer cada produto direto da api.php onde declarei ele na mesma --> | |
<!-- <li><?php echo $produto['titulo'] ?><br></li> --> | |
<!-- number format --> | |
<!-- posso estipular o valor da quantidade de virgula por casas decimais --> | |
<!-- aqui teremos o titulo , a descrição e valor de cada produto formatados --> | |
<li> | |
<?php echo $produto['titulo']." - ".$produto['descricao'] ." - "."R$".number_format($produto['valor'],2,",",".") ?> | |
<a href="/produto/editar?id=<?php echo $produto['id'] ?>">Editar</a> | |
<a href="/produto/excluir?id=<?php echo $produto['id'] ?>">Excluir</a> | |
</li> | |
<!-- aqui eu posso somar cada valor do produto --> | |
<!-- <li><?php echo $produto['valor'] + 1000.00 ?><br></li> --> | |
<!-- se fir diminuir basta por o sinal de subtraco --> | |
<!-- <li><?php echo $produto['valor'] - 1000.00 ?><br></li> --> | |
<!-- posso multiplicar tb o produto --> | |
<!-- <li><?php echo $produto['valor'] * 2 ?><br></li> --> | |
<!-- posso dividir tb --> | |
<!-- <li><?php echo $produto['valor'] / 2 ?><br></li> --> | |
<!-- elevar a potencia com 2 valores --> | |
<!-- <li><?php echo $produto['valor'] ** 2 ?><br></li> --> | |
<!-- raiz quadradade cada valor de cada produto --> | |
<!-- <li><?php echo sqrt($produto['valor']) ?><br></li> --> | |
<?php endforeach; ?> | |
</ul> | |
<hr> | |
<?php if (isset($editando)) : ?> | |
<h2>Editando Produto</h2> | |
<?php else:?> | |
<h2>Adicionar Produto</h2> | |
<?php endif;?> | |
<?php if(isset($msg)): ?> | |
<p> <?php echo $msg ?> </p> | |
<?php endif; ?> | |
<form action="<?php echo (isset($editando) ? '/produto/salvar' : '/produto/adicionar'); ?>" method="POST"> | |
<?php if(isset($editando)):?> | |
<input type="hidden" name="id" value="<?php echo $produtoEdit['id'] ?>"> | |
<?php endif;?> | |
<input type="text" name="titulo" placeholder="Título" | |
value="<?php echo (isset($produtoEdit['titulo'])? $produtoEdit['titulo'] : ''); ?>"><!-- --> | |
<input type="text" name="descricao" placeholder="Descrição" | |
value="<?php echo (isset($produtoEdit['descricao'])? $produtoEdit['descricao'] : ''); ?>"> | |
<input type="text" name="valor" placeholder="Valor R$" | |
value="<?php echo (isset($produtoEdit['valor'])? $produtoEdit['valor'] : ''); ?>"> | |
<button type="button"><?php echo (isset($editando) ? 'Atualizar' : 'Adicionar'); ?></button> | |
<a href="/home">Cancelar</a> | |
</form> | |
<!-- <ul> | |
aqui a função foi chamada sem o echo, pois acima no return foi colocado o echo para melhorar o comando em si | |
<?php exibeUsuario() ?> | |
</ul> --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
function getProdutos(){ | |
/*$dados = array( | |
["titulo"=>"PHP Básico","descricao"=>"Curso de PHP Básico","valor"=>"120.90"], | |
["titulo"=>"PHP com PDO","descricao"=>"Curso de com PDO","valor"=>"140.90"], | |
["titulo"=>"PHP OO","descricao"=>"Curso de PHP Orientado a Objetos","valor"=>"150.90"] | |
);*/ | |
$conexao = getConexao(); | |
$select = "select * from produtos"; | |
$ret = $conexao->query($select); | |
$produtos = $ret->fetchAll(); | |
return $produtos; | |
} | |
function buscaProdutos($busca){ | |
$produtos = getProdutos(); | |
$resultados = []; | |
foreach ($produtos as $produto) { | |
//$existe = in_array($busca, $produto); | |
$existe = in_array(strtolower($busca),array_map('strtolower', $produto)); | |
if ($existe) { | |
array_push($resultados, $produto); | |
} | |
} | |
return $resultados; | |
} | |
function adicionarProdutos($dados){ | |
$conexao = getConexao(); | |
//return 0; msg para exibir msg de erro | |
$insert = "INSERT INTO produtos (titulo,descricao,valor) VALUES (:titulo,:descricao,:valor)"; | |
$stmt = $conexao->prepare($insert); | |
$stmt->bindValue(':titulo',$dados['titulo']); | |
$stmt->bindValue(':descricao',$dados['descricao']); | |
$stmt->bindValue(':valor',$dados['valor']); | |
$stmt->execute(); | |
return $conexao->lastInsertId(); | |
} | |
function buscaProdutoId($id){ | |
// var_dump("OK");exit; verificando se chegou até aqui | |
$conexao = getConexao(); | |
$select = "select * from produtos where id=:id"; | |
$stmt = $conexao->prepare($select); | |
$stmt->bindValue(':id',(int)$id);// forçando que o php apenas aceite numeros inteirosm(int) | |
$stmt->execute(); | |
return $stmt->fetch(\PDO::FETCH_ASSOC); | |
/* | |
essa função fetch_assoc ela consegue trazer os dados associativos, ou seja | |
na ordem dos nomes das tabelas, como no nosso projeto | |
virão por titulo, descrição e valor, na sequência. | |
*/ | |
} | |
function salvarProduto($dados){ | |
$conexao = getConexao(); | |
//return 0; msg para exibir msg de erro | |
$update = "UPDATE produtos SET titulo=:titulo, descricao=:descricao, valor=:valor WHERE id=:id"; | |
$stmt = $conexao->prepare($update); | |
$stmt->bindValue(':titulo',$dados['titulo']); | |
$stmt->bindValue(':descricao',$dados['descricao']); | |
$stmt->bindValue(':valor',$dados['valor']); | |
$stmt->bindValue(':id',(int)$dados['id']); | |
$ret = $stmt->execute(); | |
return $ret; | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment