A listagem que segue é um péssimo exemplo de programação, na verdade se trata de uma gambiarra, ele viola todas as regras de uma boa programação, mas ele foi criado (mas falta muita coisa, ele não consegue por exemplo abrir um novo pedido), mas resume tudo o que eu aprendi em PHP.
Eu comprei o meu primeiro computador de bolso em 1999, desde então vivi sonhando com o banco de dados num computador de bolso. O computador de bolso não existe mais, no lugar surgiram os smartphones, mas não consegui instalar nenhum banco de dados no IoS e nem no Android.
Só em 2021 é que descobri que havia uma versão WampServ para o Windows e ainda de graça. Junto com o Apache, veio o MySQL e o PHP. Eu fiquei encantado com o PHP. O PHP exige que você saiba usar o HTML, eu sinceramente não sei como trabalhar com o HTML, estou aprendendendo na base da tentativa e erro.
Com o WampServ finalmente consegui conectar o smartphone no banco de dados do MySQL, através da rede local.
Claro que não faz o menor sentido você trabalhar com o banco de dados no celular, se o notebook está do lado. Eu pensei em usar o celular fora da rede local, lá no meio da rua. Foi aí que eu descobri o ngrok, ele cria um canal de comunicação bem esperta que conecta qualquer aparelho ao notebook através da internet. Não sei se o ngrok é seguro, mas ele me ajudou a realizar o meu sonho de consultar o banco de dados lá no meio da rua com o celular.
A regra do PHP é criar pelo menos uma página HTML para cada código PHP. Na hora que eu criei o orcamento.php eu me perguntei se não é possível criar todas as páginas HTML num só script PHP. Ou seja, ao invés de criar um script para consultar produto, outro para eliminar um item do pedido, outro para acrescentar um item no produto, e assim vai, em vários scripts PHP, o que me impede de fazer tudo num só script?
Claro que o código ficou uma bela macarronada, difícil de depurar. Como o PHP não tem uma janela imediata, apenas o navegador, várias vezes tive que usar a instrução echo $variavel; exit; para ver o tamanho do meu erro. Esse é o famoso método científico da tentativa e erro. Nada produtivo, mas muito bom para um aposentado como eu que está cansado de ver Netflix. Se você está cansado do Netflix, o PHP é um ótimo companheiro, toda hora ele pede para você fazer curso de digitação.
A gambiarra que utilizei foi o método implicito do PUT, gerado pelo marcador <input> e <a href> ou pelo comando header. Todos eles passam valores para a página orçamento.php e o orçamento.php vai executanto uma tarefa específica para os valores que recebe.
A seguir o código do orcamento.php bem como a estrutura das tabelas em MySQL:
<?php
echo '<meta name="viewport" content="width=device"-width, initial-scale=1">';function dec($num){$fmt = number_format($num,2,',','.');return $fmt;}function deca($num){$fmt = str_replace(',','.',$num);return $fmt;}function df($data){$fmt = date('d/m/Y',strtotime($data));return $fmt;}
$codprod=$_GET['codprod']??null;
$com=$_GET['com']??null;
$id=$_GET['id']??null;
$ped=$_GET['ped']??null;
$mysqli=new mysqli("localhost","root","","diario");// não defini senha, tenho pavor de perder a conexão com o MySQL//rotina para excluir item do orçamentoif(empty($com)){;}else{if($com=='dec'){
$query=$mysqli->query("delete from tbhistped where id=$id");
$query=$mysqli->query("select sum(subtotal) as total from tbhistped where codped = $ped");
$total = $query->fetch_assoc()['total'];
$total=round($total,2);
$query=$mysqli->query("update tbpedido set totalped = $total, dia = '".date('Y-m-d')."' where codped = $ped");}}//rotina para incluir item no orçamentoif(empty($com)){;}else{if($com=='adc'){
$qt=deca($_GET['qt']);
$codprod = $_GET['codprod'];
$unitario = $_GET['unitario'];
$subtotal = round($qt * $unitario,2);
$query=$mysqli->query("insert into tbhistped (codped,qt,codprod,unitario,subtotal) values ($ped,$qt,$codprod,$unitario,$subtotal)");
$query=$mysqli->query("select sum(subtotal) as total from tbhistped where codped = $ped");
$total = $query->fetch_assoc()['total'];$total=round($total,2);//echo "update tbpedido set totalped = $total, dia = '".date('Y-m-d')."' where codped = $ped";exit;
$query=$mysqli->query("update tbpedido set totalped = $total, dia = '".date('Y-m-d')."' where codped = $ped");
header('location:orcamento.php');}}//rotina para selecionar um produtoif(empty($com)){;}else{if($com=='slc'){
echo "<table><tr><th>Código</th><th>Descrição</th></tr>";
$query=$mysqli->query("select * from tbprod order by prod");while($linha = $query->fetch_assoc()){
$codprod = $linha['codprod'];
$codprod ="<a href=orcamento.php?codprod=$codprod>".$linha['codprod']."</a>";
echo "<tr><td align='right'>$codprod</td><td>".$linha['prod']."</td></tr>";}
echo "</table>";exit;}}
$query = $mysqli->query("select * from tbpedido");
$num_rows = $query->num_rows;if($num_rows==0){$query=$mysqli->query("insert into tbpedido (codped) values (1)");}
$query = $mysqli->query("select * from tbpedido order by codped desc");
$row = $query->fetch_assoc();
$ped = $row['codped'];
$dia = df($row['dia']);
$total = $row['totalped'];if(empty($total)){$total=0;}
echo "<font color=red>Pedido $ped de $dia, Total R$ ".dec($total);
echo "</font><br>Para excluir item do pedido, selecione a unidade do item";
echo "<table><tr><th>Produto</th><th>Qt</th><th>Un</th><th>Preço</th><th>Total</th></tr>";
$query = $mysqli->query("SELECT tbhistped.id,tbhistped.codped, tbhistped.codprod, tbhistped.qt as qt, tbhistped.unitario as unitario, tbhistped.subtotal, tbprod.prod as prod, tbprod.un as un
FROM tbhistped INNER JOIN tbprod ON tbhistped.codprod = tbprod.codprod and tbhistped.codped = $ped ORDER BY tbhistped.id;");while($row = $query->fetch_assoc()){
$un = $row['un'];
$un ="<a href='orcamento.php?com=dec&ped=$ped&id=".$row['id']."'>$un</a>";
echo "<tr><td>".$row['prod']."</td><td align=right>".dec($row['qt'])."</td><td>$un</td><td align=right >".dec($row['unitario']);
echo "</td><td align=right>".dec($row['subtotal'])."</td></tr>";}if(empty($codprod)){
echo "<tr><td><a href='produto.php?end=orcamento.php'>Selecione o produto</a></td></tr>";}else{
$query = $mysqli->query("select * from tbprod where codprod=$codprod");
$row=$query->fetch_assoc();
$custo = $row['custo'];
echo "<tr><td>".$row['prod']."</td><td>";
echo "<form action='orcamento.php'><input name='qt' width='5'><input type='hidden' name='codprod' value=$codprod>";
echo "<input type='hidden' name='com' value='adc'><input type='hidden' name='unitario' value=$custo>";
echo "<input type='hidden' name='ped' value=$ped></td><td>".$row['un']."</td><td align=right>".dec($row['custo'])."</td></td>";}
Pergunta
Frank K Hosaka
A listagem que segue é um péssimo exemplo de programação, na verdade se trata de uma gambiarra, ele viola todas as regras de uma boa programação, mas ele foi criado (mas falta muita coisa, ele não consegue por exemplo abrir um novo pedido), mas resume tudo o que eu aprendi em PHP.
Eu comprei o meu primeiro computador de bolso em 1999, desde então vivi sonhando com o banco de dados num computador de bolso. O computador de bolso não existe mais, no lugar surgiram os smartphones, mas não consegui instalar nenhum banco de dados no IoS e nem no Android.
Só em 2021 é que descobri que havia uma versão WampServ para o Windows e ainda de graça. Junto com o Apache, veio o MySQL e o PHP. Eu fiquei encantado com o PHP. O PHP exige que você saiba usar o HTML, eu sinceramente não sei como trabalhar com o HTML, estou aprendendendo na base da tentativa e erro.
Com o WampServ finalmente consegui conectar o smartphone no banco de dados do MySQL, através da rede local.
Claro que não faz o menor sentido você trabalhar com o banco de dados no celular, se o notebook está do lado. Eu pensei em usar o celular fora da rede local, lá no meio da rua. Foi aí que eu descobri o ngrok, ele cria um canal de comunicação bem esperta que conecta qualquer aparelho ao notebook através da internet. Não sei se o ngrok é seguro, mas ele me ajudou a realizar o meu sonho de consultar o banco de dados lá no meio da rua com o celular.
A regra do PHP é criar pelo menos uma página HTML para cada código PHP. Na hora que eu criei o orcamento.php eu me perguntei se não é possível criar todas as páginas HTML num só script PHP. Ou seja, ao invés de criar um script para consultar produto, outro para eliminar um item do pedido, outro para acrescentar um item no produto, e assim vai, em vários scripts PHP, o que me impede de fazer tudo num só script?
Claro que o código ficou uma bela macarronada, difícil de depurar. Como o PHP não tem uma janela imediata, apenas o navegador, várias vezes tive que usar a instrução echo $variavel; exit; para ver o tamanho do meu erro. Esse é o famoso método científico da tentativa e erro. Nada produtivo, mas muito bom para um aposentado como eu que está cansado de ver Netflix. Se você está cansado do Netflix, o PHP é um ótimo companheiro, toda hora ele pede para você fazer curso de digitação.
A gambiarra que utilizei foi o método implicito do PUT, gerado pelo marcador <input> e <a href> ou pelo comando header. Todos eles passam valores para a página orçamento.php e o orçamento.php vai executanto uma tarefa específica para os valores que recebe.
A seguir o código do orcamento.php bem como a estrutura das tabelas em MySQL:
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.