salvar.php — leitura técnica completa

sistema/painel/paginas/proteses/salvar.php
Endpoint AJAX que insere ou atualiza um registro da tabela proteses.

PrótesesEndpoint AJAX de persistência74 linhas

Responsabilidade do arquivo

Endpoint AJAX que insere ou atualiza um registro da tabela proteses.

Dependências observadas:
Conexão PDO / configurações globaisBanco de dados

Tipo

Endpoint AJAX de persistência

Grupo

Próteses

Total de linhas

74

Código completo

1<?php 2require_once("../../../conexao.php"); 3$tabela = 'proteses'; 4 5$id = isset($_POST['id']) ? trim($_POST['id']) : ''; 6$cliente = isset($_POST['cliente']) ? trim($_POST['cliente']) : ''; 7$modelo = isset($_POST['modelo']) ? trim($_POST['modelo']) : ''; 8$cor = isset($_POST['cor']) ? trim($_POST['cor']) : ''; 9$densidade = isset($_POST['densidade']) ? trim($_POST['densidade']) : ''; 10$tamanho = isset($_POST['tamanho']) ? trim($_POST['tamanho']) : ''; 11$fornecedor = isset($_POST['fornecedor']) ? trim($_POST['fornecedor']) : ''; 12$observacoes = isset($_POST['observacoes']) ? trim($_POST['observacoes']) : ''; 13 14if ($cliente == '') { 15 echo 'Selecione um Cliente'; 16 exit(); 17} 18 19if ($modelo == '') { 20 echo 'Informe o Modelo'; 21 exit(); 22} 23 24if ($fornecedor == '') { 25 echo 'Selecione um Fornecedor'; 26 exit(); 27} 28 29// validar registro duplicado 30$query = $pdo->prepare("SELECT * FROM $tabela WHERE cliente = :cliente AND modelo = :modelo"); 31$query->bindValue(':cliente', $cliente); 32$query->bindValue(':modelo', $modelo); 33$query->execute(); 34$res = $query->fetchAll(PDO::FETCH_ASSOC); 35 36if (count($res) > 0 && $id != $res[0]['id']) { 37 echo 'Registro já Cadastrado, escolha outro!!'; 38 exit(); 39} 40 41if ($id == '') { 42 $query = $pdo->prepare("INSERT INTO $tabela SET 43 cliente = :cliente, 44 modelo = :modelo, 45 cor = :cor, 46 densidade = :densidade, 47 tamanho = :tamanho, 48 fornecedor = :fornecedor, 49 observacoes = :observacoes, 50 data_cad = curDate()"); 51} else { 52 $query = $pdo->prepare("UPDATE $tabela SET 53 cliente = :cliente, 54 modelo = :modelo, 55 cor = :cor, 56 densidade = :densidade, 57 tamanho = :tamanho, 58 fornecedor = :fornecedor, 59 observacoes = :observacoes 60 WHERE id = :id"); 61 $query->bindValue(':id', $id); 62} 63 64$query->bindValue(':cliente', $cliente); 65$query->bindValue(':modelo', $modelo); 66$query->bindValue(':cor', $cor); 67$query->bindValue(':densidade', $densidade); 68$query->bindValue(':tamanho', $tamanho); 69$query->bindValue(':fornecedor', $fornecedor); 70$query->bindValue(':observacoes', $observacoes); 71$query->execute(); 72 73echo 'Salvo com Sucesso'; 74?>

Leitura linha por linha

LinhaCódigoExplicação técnica
1<?php Abre um bloco PHP. A partir daqui o arquivo passa a executar lógica no servidor.
2require_once("../../../conexao.php");Importa `../../../conexao.php` para disponibilizar conexão, sessão, funções utilitárias ou validações necessárias ao restante do fluxo.
3$tabela = 'proteses';Centraliza o nome da tabela `proteses` em uma variável, facilitando reaproveitamento do valor nas queries do arquivo.
4 Linha em branco usada para separar blocos e melhorar a leitura.
5$id = isset($_POST['id']) ? trim($_POST['id']) : '';Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina.
6$cliente = isset($_POST['cliente']) ? trim($_POST['cliente']) : '';Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina.
7$modelo = isset($_POST['modelo']) ? trim($_POST['modelo']) : '';Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina.
8$cor = isset($_POST['cor']) ? trim($_POST['cor']) : '';Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina.
9$densidade = isset($_POST['densidade']) ? trim($_POST['densidade']) : '';Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina.
10$tamanho = isset($_POST['tamanho']) ? trim($_POST['tamanho']) : '';Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina.
11$fornecedor = isset($_POST['fornecedor']) ? trim($_POST['fornecedor']) : '';Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina.
12$observacoes = isset($_POST['observacoes']) ? trim($_POST['observacoes']) : '';Lê dados de entrada vindos da requisição, sessão ou upload e normaliza o valor para uso no restante da rotina.
13 Linha em branco usada para separar blocos e melhorar a leitura.
14if ($cliente == '') {Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
15 echo 'Selecione um Cliente';Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela.
16 exit();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
17}Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
18 Linha em branco usada para separar blocos e melhorar a leitura.
19if ($modelo == '') {Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
20 echo 'Informe o Modelo';Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela.
21 exit();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
22}Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
23 Linha em branco usada para separar blocos e melhorar a leitura.
24if ($fornecedor == '') {Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
25 echo 'Selecione um Fornecedor';Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela.
26 exit();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
27}Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
28 Linha em branco usada para separar blocos e melhorar a leitura.
29// validar registro duplicadoComentário do código. Serve para contextualizar o bloco seguinte para quem fizer manutenção.
30$query = $pdo->prepare("SELECT * FROM $tabela WHERE cliente = :cliente AND modelo = :modelo");Centraliza o nome da tabela `tabela` em uma variável, facilitando reaproveitamento do valor nas queries do arquivo.
31$query->bindValue(':cliente', $cliente);Associa um valor PHP a um parâmetro nomeado da query preparada.
32$query->bindValue(':modelo', $modelo);Associa um valor PHP a um parâmetro nomeado da query preparada.
33$query->execute();Executa a query preparada no banco de dados.
34$res = $query->fetchAll(PDO::FETCH_ASSOC);Lê o resultado retornado pelo banco e o converte para uma estrutura PHP que o restante do arquivo consegue consumir.
35 Linha em branco usada para separar blocos e melhorar a leitura.
36if (count($res) > 0 && $id != $res[0]['id']) {Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
37 echo 'Registro já Cadastrado, escolha outro!!';Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela.
38 exit();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
39}Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
40 Linha em branco usada para separar blocos e melhorar a leitura.
41if ($id == '') {Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
42 $query = $pdo->prepare("INSERT INTO $tabela SET Centraliza o nome da tabela `tabela` em uma variável, facilitando reaproveitamento do valor nas queries do arquivo.
43 cliente = :cliente,Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
44 modelo = :modelo,Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
45 cor = :cor,Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
46 densidade = :densidade,Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
47 tamanho = :tamanho,Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
48 fornecedor = :fornecedor,Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
49 observacoes = :observacoes,Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
50 data_cad = curDate()");Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
51} else {Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
52 $query = $pdo->prepare("UPDATE $tabela SET Centraliza o nome da tabela `tabela` em uma variável, facilitando reaproveitamento do valor nas queries do arquivo.
53 cliente = :cliente,Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
54 modelo = :modelo,Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
55 cor = :cor,Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
56 densidade = :densidade,Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
57 tamanho = :tamanho,Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
58 fornecedor = :fornecedor,Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
59 observacoes = :observacoesLinha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
60 WHERE id = :id");Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
61 $query->bindValue(':id', $id);Associa um valor PHP a um parâmetro nomeado da query preparada.
62}Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
63 Linha em branco usada para separar blocos e melhorar a leitura.
64$query->bindValue(':cliente', $cliente);Associa um valor PHP a um parâmetro nomeado da query preparada.
65$query->bindValue(':modelo', $modelo);Associa um valor PHP a um parâmetro nomeado da query preparada.
66$query->bindValue(':cor', $cor);Associa um valor PHP a um parâmetro nomeado da query preparada.
67$query->bindValue(':densidade', $densidade);Associa um valor PHP a um parâmetro nomeado da query preparada.
68$query->bindValue(':tamanho', $tamanho);Associa um valor PHP a um parâmetro nomeado da query preparada.
69$query->bindValue(':fornecedor', $fornecedor);Associa um valor PHP a um parâmetro nomeado da query preparada.
70$query->bindValue(':observacoes', $observacoes);Associa um valor PHP a um parâmetro nomeado da query preparada.
71$query->execute();Executa a query preparada no banco de dados.
72 Linha em branco usada para separar blocos e melhorar a leitura.
73echo 'Salvo com Sucesso';Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela.
74?>Fecha o bloco PHP atual para voltar à saída HTML.

Navegação entre arquivos do grupo