Ir para conteúdo
Fórum Script Brasil
  • 0

Atualizar um banco de dados (sql) através do PHP utilizando um Button


Matheus Galindo

Pergunta

Olá pessoal, preciso de ajuda o mais rápido possível. 
Tenho um banco de dados conectado ao código PHP. Ele me apresenta uma tabela com os seus devidos campos. O meu objetivo é deixar, para o cliente, 3 desses campos abertos à modificação. Após modificados quero que, quando o cliente clique no botão ''Salvar alterações'', o banco de dados seja atualizado com essas informações novas. 
Já tentei de MUITOS jeitos, estou a exatos 9 dias nesse dilema e o tempo de apresentação para minha chefe já foi expandido 2 vezes. 
Não tenho muita experiência com PHP, na verdade esse é meu 1º projeto grande. Se souberem de algo que possa me ajudar eu agradeço imensamente. 

Att. Matheus Galindo

Eis aqui os códigos em anexo:
Arquivo em PHP 'atualizarDados.php':

<!DOCTYPE html>
<html>
<head>
	<!--Título da página -->
	<title>Consulta</title>
	<meta charset="utf-8">
	<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
	<link rel="stylesheet" type="text/css" href="personalizar.css">
	<script type="text/javascript" src="js/jquery.js"></script>
	<script type="text/javascript" src="js/bootstrap.min.js"></script>
</head>
<body>
<nav class="navbar navbar-default" style="background-color: #065BD1;">
<div class="container-fluid">
<div class="navbar-header">
	<a href="login.html"><img src="logoPref.png"></a>
</div>

<ul class="nav navbar-nav">
	<li><a href="login.html">Home</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
	<li><a href="login.html"><span class="glyphicon glyphicon-log-out"></span>  Sair</a></li>
</ul>
</div>
</nav>

<?php

session_start();
#Declaração conexão 
$conexao = mysqli_connect("localhost", "root", "", "ferias20182");
/*FUNÇÃO PARA VERIFICAR SE O BANCO DE DADOS FOI CONECTADO*/
function conexaoBD(){
	if(mysqli_connect_error()){
		echo "<br>Conexão não realizada. Erro".mysqli_connect_error();
	}
	//else{
	//	echo "Conexão funcionou perfeitamente";
	//}
} 
## COMANDO PARA NÃO APARECER WARNING DURANTE A EXECUÇÃO DO SCRIPT
//	error_reporting(0);
//	ini_set("display_erros", 0);
## Declarando variavéis

$nome_servidor = $_POST["selectNome"];
$_SESSION["nomeServ"] = $nome_servidor;
function consultarMatricula($nome_servidor = '', $conn=''){
		/*Seleciona tabela escala_ferias e puxa os resultados de acordo com o código de
		lotação inserido*/
		$sql5 = "SELECT matricula_servidor FROM dados_servidor where `nome_servidor`= '$nome_servidor'";
		$result5 =  mysqli_query($conn, $sql5);
		if (mysqli_num_rows($result5) > 0) {
			while($row2=mysqli_fetch_array($result5)){
				$matriculaServidor = $row2["matricula_servidor"];
				$sql2 = "SELECT * FROM `escala_ferias` where `matricula_servidor` = '$matriculaServidor'";
		$result2 = mysqli_query($conn, $sql2);
			
			if (mysqli_num_rows($result2) > 0) {
				//nomes dos campos da tabela
				echo "<form>";
				echo "<table border=2><tr><th>Matricula</th><th>Mes gozo</th><th>Ano gozo</th><th>Confirmação</th><th>Observação</th><th></th></tr>";
				while ($row2= mysqli_fetch_array($result2)) {
					//Atribuição à variáveis para controle de férias por critério

					$valorMatricula= $row2["matricula_servidor"];
					$valorCriterio = $row2["criterio"];
					$valorMesGozo  = $row2["mes_Gozo"];
					$valorAnoGozo  = $row2["ano_Gozo"];
					$observacao    = $row2["observacao"];
					$button        = "<button class='btn btn-info' value = '1' name='registrarAlter'>Salvar alterações</button>"; 
					//Caso o critério seja 1 - férias somente em janeiro
					if ($valorCriterio == 1) {
						$valorMes =1 ;
					//caso o critério seja 2 - férias entre abril e novembro
					}else if ($valorCriterio == 2){
						$min =  4;
						$max = 11;
						$valorAnoGozo = date("Y")+1;
						$valorMes = "<input name='mes_Gozo'  type='number' min='$min' max='$max'>";
					}
					//caso o critério seja 3 - férias somente no mês seguinte ao mês de admissão do ano seguinte ao ano de admissão
					else if ($valorCriterio == 3){
						//$mesSeguinte = $valorMesGozo + 1;
						$valorMes = "<input name='mes_Gozo'  type='number' min='1' max='12'>";
						$valorAnoGozo = date("Y")+ 1;
					}
					//mostra a tabela na tela alimentada com as informações
					echo "<tr><td>".$valorMatricula."</td><td>$valorMes"."</td><td>".$valorAnoGozo."</td><td><input type=checkbox name='inputConfirmacao' value = '1'>"."</td><td><input type='text' name = 'inputObservacao' placeholder='Campo para observação'>"."</td><td>".$button."</tr>";
				}
		
				//fecha a tabela
			echo "</table>";
			echo "<br>";
			echo "</form>";
				}		
			}

		}
	
	}
	

##DECLARAÇÃO
conexaoBD();
consultarMatricula($nome_servidor, $conexao);	
?>
</body>
</html>

Arquivo em PHP 'dadosLogin.php':

<!DOCTYPE html>
<html>
<head>
	<!--Título da página -->
	<title>Consulta</title>
	<meta charset="utf-8">
	<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
	<link rel="stylesheet" type="text/css" href="personalizar.css">
	<script type="text/javascript" src="js/jquery.js"></script>
	<script type="text/javascript" src="js/bootstrap.min.js"></script>
</head>
<body>
<nav class="navbar navbar-default" style="background-color: #065BD1;">
<div class="container-fluid">
<div class="navbar-header">
	<a href="login.html"><img src="logoPref.png"></a>
</div>

<ul class="nav navbar-nav">
	<li><a href="login.html">Home</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
	<li><a href="login.html"><span class="glyphicon glyphicon-log-out"></span>Sair</a></li>
</ul>
</div>
</nav>
<?php

## COMANDO PARA NÃO APARECER WARNING DURANTE A EXECUÇÃO DO SCRIPT
error_reporting(0);
ini_set("display_erros", 0);
// ----------------------------
	#Declaração de variáveis
$cpf = $_POST["inputCPF"];
$codLocal = $_POST["cod_lotacao"];
// -----------------------
	#Declaração conexão 
$conexao = mysqli_connect("localhost", "root", "", "ferias20182");
/*FUNÇÃO PARA VERIFICAR SE O BANCO DE DADOS FOI CONECTADO*/
function conexaoBD(){
	if(mysqli_errno()){
		echo "<br>Conexão não realizada. Erro".mysqli_connect_error();
	}else{
	//	echo "Conexão rodou";
	}
} 
# Testando consulta cpf
/* Função para consultar CPF dentro do banco de dados */
function consultaCPF($cpf = '', $conn=''){
	//SELECIONANDO O RESPONSÁVEL DA LOCAÇÃO
	$sql3 = "SELECT `cod_local` FROM responsavel_lotacao where cpf= $cpf";
	$result2 = mysqli_query($conn, $sql3);
	if (mysqli_num_rows($result2) > 0) {
		while ($row2 = mysqli_fetch_array($result2)) {
			echo "<br>Código lotação:".$row2["cod_local"];
		}
	}
}
?>
<form method="post">
	<label for="cod_lotacao">Digite o código da sua lotação</label>
	<input name="cod_lotacao" type=text></input>
	<button type="submit">Consultar</button>
</form>
<?php
	//função que lista as informações da lotação em questão
	function listarServidor($cod_Lotacao = '', $conn=''){
		/*Seleciona tabela escala_ferias e puxa os resultados de acordo com o código de
		lotação inserido*/
		$sql2 = "SELECT matricula_servidor,nome_servidor FROM `dados_servidor` where cod_lotacao = $cod_Lotacao";
		$result2 = mysqli_query($conn, $sql2);
			if (mysqli_num_rows($result2) > 0) {

				//nomes dos campos da tabela
				echo "<form  method='post' action='atualizarDados.php'>";
				echo "<select name = 'selectNome'>";
				while ($row2= mysqli_fetch_array($result2)) {
				$nome_servidor = $row2['nome_servidor'];
				echo "<option value'".$nome_servidor."'>".$nome_servidor."</option>";
				//fecha a tabela
				echo "<br>";
			}
			echo "</select>";
			echo "<button type= 'submit' class = 'btn btn-warning'>Consultar</button>";
	}

	$sql3 = "SELECT `matricula_servidor`, `mes_Gozo`, `ano_Gozo`, `confirmacao`, `observacao` FROM `escala_ferias` ";
}
	
#Declaração e chamada de funções
conexaoBD();
consultaCPF($cpf,$conexao);
listarServidor($codLocal, $conexao);
?>

</body>
</html>

 

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Não entendi!
Quais campos o sr. deseja editar?

Separe seu script em camadas
Separe a lógica da apresentação
Se ficar tudo misturado assim, pode tornar complicada a compreensão

Editado por lowys
Link para o comentário
Compartilhar em outros sites

  • 0
12 horas atrás, lowys disse:

Não entendi!
Quais campos o sr. deseja editar?

Separe seu script em camadas
Separe a lógica da apresentação
Se ficar tudo misturado assim, pode tornar complicada a compreensão

Já está editável. Só quero fazer com que as edições sobrescrevam as informações antigas do banco de dados conectado. Quero atualizar com as informações que serão inseridas pelo cliente. Essa parte de update que eu não consigo exercer.

PS.: Obrigado pelas dicas. Mesmo eu entendendo bem como tá o código (já que fui eu quem fiz) tenho que me lembrar das boas práticas de programação, e deixar o mais enxuto possível para reuso.

Editado por Matheus Galindo
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...