Database update problems using PHP

Asked

Viewed 53 times

0

I have a UPDATE problem with the database.

I have a form that sends the data to a php file, which would update a table of the MYSQL database.

However, update is not performing the insertion and mysqli_affected_rows is returning a value to me (-1).

I will post the form code and php file.

<?php
	session_start();
	
	//CHAMANDO O ARQUIVO DE CONEXÃO COM O BANCO DE DADOS
	require_once "conexao/conexao.php"; 
	
		
	//CHAMANDO O ARQUIVO DE CONEXÃO COM O BANCO DE DADOS
	require_once "banco-de-dados/tela-atividade-extra/create.php"; 
			
?>




<!DOCTYPE html>

<html>
<head>
		<title>Sistema - JCA</title>
        <meta http-equiv="X-UA-Compatible" content="IE-edge">
        <meta name="viewport" content="width=devide-width, initial-scale=1">
        <meta charset="UTF-8">
		
		<link href="css/estilo-atividade-extra.css" rel="stylesheet"> <!-- ARQUIVO CSS DA PÁGINA -->
		<link href="_bootstrap-4.1.1/css/bootstrap.min.css" rel="stylesheet"> <!-- ARQUIVO CSS DO BOOTSTRAP -->
			
</head>


<body>
		
		
		
		
		<div class="container-fluid">
			
			<header>
			
				<h1 class="alinhar-texto-no-centro">Atividade Extra</h1>
				<p class="alinhar-texto-no-centro"><i>"Uma mente que se abre a uma nova idéia jamais voltará ao seu tamanho original"</i></p>
				
			</header>
			
			<div class="row">
				
				<div class="col-lg-8 col-lg-offset-2" id="formulario">
					
					<!-- DIV COM O FORMULÁRIO DE LOGIN -->
									
						<form action="banco-de-dados/tela-atividade-extra/update.php" method="post" id="formulario-login-sistema">
														
							<div class="form-group col-lg-4">
								<label for="colaborador">Colaborador:</label>
								<select name="colaborador" id="colaborador" class="input form-control">
									<option><?php echo utf8_decode($_SESSION["nome"]) ?></option>				
								</select>
								
							</div>
							
							<div class="form-group col-lg-7 col-lg-offset-1">
								<label for="atividade">Qual será a atividade ?</label>
								<select name="atividade" id="atividade" class="input form-control">
									<?php
									while($registros = $query_pegar_atividades -> fetch_assoc())
									{
										$ativ = utf8_decode($registros['ATIVIDADE']);
													
										echo "<option>$ativ</option>";
																	
									}
									?>									
								</select>
							</div>
							
							<!-- LINHA -->
							
							<div class="form-group col-lg-4">
							
								<label for="data-vencimento">Qual é a data de vencimento:</label>
								<input type="date" name="data-vencimento" id="data-vencimento" class="input form-control">
								
							</div>
							
							<div class="form-group col-lg-4 col-lg-offset-1">
								<label for="designou-atividade">Quem designou a atividade?</label>
								<select name="designou-atividade" id="designou-atividade" class="input form-control">
									<option>CLIENTE</option>
									<?php
									while($registros = $query_pegar_designador -> fetch_assoc())
									{
										$usu = utf8_decode($registros['usuario']);
													
										echo "<option>$usu</option>";
																	
									}
									?>				
								</select>
							</div>

							<!-- LINHA -->
							
							<div class="col-lg-12 alinhar-texto-no-centro" id="selecionar-empresas">
								<h3 class="alinhar-texto-no-centro">Selecionar Empresa</h3>
							

							
								<!-- CAMPO CODIGO DA EMPRESA -->
								<div class="form-group col-lg-2">
								
									<label for="codigo-empresa">COD</label>
									<select name="codigo-empresa" id="codigo-empresa" class="input form-control">
										<?php
										while($registros = $query_pegar_cod -> fetch_assoc())
										{
											$emp = $registros['COD'];
														
											echo "<option>$emp</option>";
																		
										}
										?>			
									</select>
									
								</div>
													
								<!-- CAMPO EMPRESA -->
								<div class="form-group col-lg-5">
									<label for="empresa">Empresa</label>
									<select name="empresa" id="empresa" class="input form-control">
										<?php
										while($registros = $query_pegar_empresa -> fetch_assoc())
										{
											$empr = utf8_decode($registros['EMPRESAS']);
														
											echo "<option>$empr</option>";
																		
										}
										?>					
									</select>
								</div>
								
								<!-- CAMPO TRIBUTAÇÃO -->
								<div class="form-group col-lg-5">
									<label for="tributacao">Tributação</label>
									<select name="tributacao" id="tributacao" class="input form-control">
										<?php
											while($registros = $query_pegar_tributacao -> fetch_assoc())
											{
												$empre = utf8_decode($registros['TRIBUTACAO']);
															
												echo "<option>$empre</option>";
																			
											}
										?>								
									</select>
								</div>
								
								
								<!-- CAMPO POSSUIR ARQUIVOS -->
								<div class="form-group col-lg-3 col-lg-offset-9" id="lista-empresas" style="display:inline">
									<div class="form-inline">
										<div class="radio">
											<label>
												<input type="radio" name="empresas-filtro" id="empresas-filtro" value="sim" class="form-control" checked>Minhas
											</label>
										</div>
										
										<div class="radio">
											<label>
												<input type="radio" name="empresas-filtro" id="empresas-filtro" value="nao" class="form-control">Todas
											</label>
										</div>
									</div>									
								</div>

								
								
								
							</div>

							<!-- LINHA -->
							
								<!-- CAMPO DETALHES -->
								
								<div class="form-group col-lg-12" id="destalhes">
									<label for="destalhes-da-atividade">Detalhes sobre a atividade</label>
									<textarea class="form-control" name="destalhes-da-atividade" id="destalhes-da-atividade" style="resize:none" maxlength="500" rows="10" placeholder="Descreva detalhes sobre a atividade">
									</textarea>
								</div>

							<!-- LINHA -->

								<!-- CAMPO QUANTIDADE DE PROCESSOS -->
								<div class="form-group col-lg-3">
									<label for="quantidade-processos">Quantidade de Processos: </label>
									<input class="form-control" type="number" name="quantidade-processos" id="quantidade-processos" maxlength="40" required>
								</div>
								
								<!-- CAMPO POSSUIR ARQUIVOS -->
								<div class="form-group col-lg-5 col-lg-offset-4" id="possui-arquivo" style="display:inline">
									<label for="possui-arquivo">Possui Arquivo ?</label>
									<div class="form-inline">
										<div class="radio">
											<label>
												<input type="radio" name="possui-arquivo" id="opcao-radio" value="S" class="form-control" checked> SIM
											</label>
										</div>
										
										<div class="radio">
											<label>
												<input type="radio" name="possui-arquivo" id="possui-arquivo" value="N" class="form-control"> NÃO
											</label>
										</div>
									</div>									
								</div>

								
								<!-- LINHA -->
								
								<div class="col-lg-3 col-lg-offset-9 form-group">
									<input name="salvar-atividade-extra" id="salvar-atividade-extra" class="btn btn-sm btn-primary btn-block" type="submit" value="Salvar">
								</div>
							
						</form>
						
				</div>		
						
							
			</div>
			
			
			
		</div>
				
		<script src="_jquery/jquery-3.2.1.min.js"></script> <!-- ARQUIVO JQUERY -->
		
</body> <!-- FIM DO BODY -->
</html> <!-- FIM DO HTML -->


<!-- Arquivo PHP de inserção no banco de dados  -->

<?php
	//CHAMANDO O ARQUIVO DE CONEXÃO COM O BANCO DE DADOS
	require_once "../../conexao/conexao.php"; 
	
	session_start();
	date_default_timezone_set('Etc/GMT+3');
	setlocale(LC_ALL, "", "pt_BR.utf-8");
	
	$departamento_usuario = $_SESSION["departamento-usuario"] ;
	$empresa_origem_usuario = $_SESSION["empresa-origem-usuario"];
		
	if(isset($_POST["salvar-atividade-extra"])) //REALIZA A AÇÃO SE O BOTÃO "ENVIAR" FOR ACIONADO
	{
		//PREENCHE AS VARIÁVEIS COM OS DADOS VINDOS DOS CAMPOS DO FORMULÁRIO
		
		$colaborador = utf8_decode($_POST["colaborador"]);
		$atividade   = utf8_decode($_POST["atividade"]);
		$data_vencimento = date('d-m-Y', strtotime($_POST["data-vencimento"])); 
			
		$designou_atividade  = utf8_decode($_POST["designou-atividade"]);
		$codigo_empresa = $_POST["codigo-empresa"];
		$empresa   = utf8_decode($_POST["empresa"]);
		$tributacao = utf8_decode($_POST["tributacao"]);
		$empresas_filtro  = utf8_decode($_POST["empresas-filtro"]);
		$destalhes_atividade  = utf8_decode($_POST["destalhes-da-atividade"]);
		$quantidade_processos = filter_input(INPUT_POST, 'quantidade-processos', FILTER_SANITIZE_NUMBER_INT);
		$possui_arquivos  = utf8_decode($_POST["possui-arquivo"]);
		
		//VALORES FIXOS 
		
		//COMPARANDO A DATA DO CAMPO COM A DATA ATUAL
		$hoje = date("d-m-y");
		if($data_vencimento < $hoje)
		{
			$status = "VENCIDO";
		}
		else
		{
			$status = "PENDENTE";
		}
		
		
		//CONFIGURANDO A VARIÁVEL CONFERENCIA
		
		if($possui_arquivos == "S")
		{
			$conferencia = "A CONFERIR";
		}
		else 
		{
			$conferencia = "NÃO POSSUI ARQUIVO";
		}
		
		
		
	}	
	
	
	$update_one = "INSERT INTO tbl_atividades(COD, EMPRESAS, TRIBUTACAO, RESPONSAVEL, DESIGNADOR, TIPO_ATIVIDADE, DT_VENCIMENTO, STATUS, DETALHES, EXTRA_URGENTE_COMUM, VISUALIZADO, ATUALIZADO, ARQUIVO, DEPARTAMENTO, EMPRESA_ORIGEM, CONFERENCIA, QNTD_PROCESSOS) 
	VALUES('$codigo_empresa','$empresa','$tributacao','$colaborador','$designou_atividade','$atividade','$data_vencimento','$status','$destalhes_atividade','E','S','S','$possui_arquivos','$departamento_usuario','$empresa_origem_usuario','$conferencia','$quantidade_processos')";
		
	$update_atividades_extras = mysqli_query($conecta, $update_one);
	
	$affected_rows = mysqli_affected_rows($conecta);
	
	if($affected_rows > 0)
	{
		header("location:../../form-atividade-extra.php");
		
	}
	
	print_r($update_one);
	
?>
	
	

inserir a descrição da imagem aqui

  • 1

    If you take the SQL statement from your $update_one and run directly in the database, does any error occur ? Also add information about the table to better understand the situation.

  • I added the image of the table where I need to enter the data.

  • Ok.. and tried to run straight into the bank the instruction ? Gave error ?

  • 1

    I managed to solve, 8bit. It was a problem with the dates. This database (which is now in Mysql) was already in ACESS. A migration was made to Mysql. Then it came up with some glitches. The bank dates, for example, are in the format (y:d:m) and I was inserting it in the format (d:m:y). Then there was an incompatibility at the time of the Insert, in the comparison between them. But still, thanks for the help.

1 answer

1


Dude, by the example of your table that you posted, your "code" field (which I’m imagining is your PRIMARY KEY) is like NULL, probably it should be NOT NULL and AUTO_INCREMENT.

  • Yeah, this bench I kind of caught with streetcar walking. As the guy who manages the database, in the company, made the transition from ACESS to Mysql, it turned out that the "code" field did not come as the primary key for Mysql (but in Acess it was). But I already solved the problem. The problem was the date, which came from accessing to Mysql in the format (Y:D:M) and I was inserting in the form for PHP in the format (D:M:Y). So there was an incompatibility when they were compared.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.