Update nao atualiza meu banco de dados

Bom dia, estou com problemas de atualização de banco. O problema é que o código não da erro.
Já entra no if como se tivesse feito a alteração. Na execução não apresenta erro de mysql.

Alguém pode me ajudar?

<?php session_start(); include_once("conexao.php"); $code = filter_input(INPUT_POST, 'CODE',FILTER_SANITIZE_NUMBER_INT); $codequipamento = filter_input(INPUT_POST,'codequipamento',FILTER_SANITIZE_NUMBER_INT); $codequ2 = filter_input(INPUT_POST,'codequ2',FILTER_SANITIZE_NUMBER_INT); $complexidade = filter_input(INPUT_POST,'complexidade',FILTER_SANITIZE_NUMBER_INT); $equipamento = filter_input(INPUT_POST,'equipamento',FILTER_SANITIZE_STRING); $area = filter_input(INPUT_POST,'area',FILTER_SANITIZE_STRING); $valorUnitario = filter_input(INPUT_POST,'valorUnitario',FILTER_SANITIZE_NUMBER_INT); $perCManuANO = filter_input(INPUT_POST,'perCManuANO',FILTER_SANITIZE_NUMBER_INT); $vidaUtilemAnos = filter_input(INPUT_POST,'vidaUtilemAnos',FILTER_SANITIZE_NUMBER_INT); $regradeCriticidade = filter_input(INPUT_POST,'regradeCriticidade',FILTER_SANITIZE_NUMBER_INT); $mp_periodicidade = filter_input(INPUT_POST,'mp_periodicidade',FILTER_SANITIZE_NUMBER_INT); //echo "CODequipamento: $codequ2
"; $result_equipamento="UPDATE Equipamento1 SET CODequipamento= '$codequipamento', CODequ2= '$codequ2', Complexidade= '$complexidade',Equipamento= '$equipamento', Area= '$area', ValorUnitario= '$valorUnitario',PerCManuANO= '$perCManuANO',VidaUtilemAnos= '$vidaUtilemAnos', RegradeCriticidade= '$regradeCriticidade', MP_periodicidade= '$mp_periodicidade' WHERE CODE= '$code'"; $resultado_equipamento = mysqli_query($conn, $result_equipamento) or die ('Erro: '. mysqli_error($conn)); if(mysqli_affected_rows($conn) != -1) { $_SESSION['msg']= "

Equipamento Editado com Sucesso!

"; header("Location: listar.php"); }else{ $_SESSION['msg']= "

Equipamento nao Editado com Sucesso!

"; header("Location: Edit_equipamento.php?CODE=$code"); }

Rapaz, da um tapa nesse código ai pra exibir melhor pra gente kkkkkk

Mas te adianto, para ver mensagens de erro no php, melhor ativar isso no topo do script:

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL | E_STRICT);
...

E os erros de mysqli vc pega usando:

https://www.w3schools.com/php/func_mysqli_error.asp

Obrigado amigo. Ele ta organizado, mas quando copio ele para ca ele fica assim tudo junto, vc tem um email ou skype que possa te mandar ele?

SO lembrando que ele nao da erro algum, ele conecta no banco normalmente, pois esse script é de edição de dados no banco, então ele conecta porque tras os dados para editar, mas quando faço alguma alteração, ele entra no if e informa que os dados foram alterados com sucesso, mas quando vc pucha o mesmo equipamento do banco, ele n sofreu nenhuma alteração.

Isso que esta acontecendo.

Bom dia. Uma sugestão é rever essa linha “if(mysqli_affected_rows($conn) != -1)”, pois pode estar retornando 0 (Nenhum registro foi alterado) e entrando no seu “else” de sucesso.

SIm, acabei de alterar o if para “if(mysqli_affected_rows($conn) != 0)” e ele caiu no else.

Eu definitivamente não sei o que pode estar acontecendo, sou novo nessa área de programação, comecei a um mês e meio por ai, por isso no grau de dificuldade.

Tente imprimir o comando sql “$result_equipamento”.

$result_equipamento=“UPDATE Equipamento1 SET CODequipamento= ‘$codequipamento’, CODequ2= ‘$codequ2’, Complexidade= ‘$complexidade’,Equipamento= ‘$equipamento’, Area= ‘$area’, ValorUnitario= ‘$valorUnitario’,PerCManuANO= ‘$perCManuANO’,VidaUtilemAnos= ‘$vidaUtilemAnos’, RegradeCriticidade= ‘$regradeCriticidade’, MP_periodicidade= ‘$mp_periodicidade’ WHERE CODE= ‘$code’”;

echo($result_equipamento);
die();

E veja se seu comando SQL está certo. Copie e tente rodar diretamente no banco.

Imprimiu:

UPDATE Equipamento1 SET CODequipamento= ‘123444444’, CODequ2= ‘1213’, Complexidade= ‘13232’,Equipamento= ‘ADB’, Area= ‘HGHGHGH’, ValorUnitario= ‘1235’,PerCManuANO= ‘154586’,VidaUtilemAnos= ‘251548’, RegradeCriticidade= ‘15185’, MP_periodicidade= ‘1515’ WHERE CODE= ‘’

So o CODE que nao saiu nada!

Ele imprimiu já com as alterações que eu fiz nos dados.

Pois é, aí está o problema. O code não está sendo coletado corretamente em:

$code = filter_input(INPUT_POST, ‘CODE’,FILTER_SANITIZE_NUMBER_INT);

Agora remova a impressão do sql e tente imprimir o code.


$code = filter_input(INPUT_POST, ‘CODE’,FILTER_SANITIZE_NUMBER_INT);
echo("O código recebido é: ".$code);
die();

Depois remova as aspas ‘’ do parâmetro code, pois é um inteiro.

$result_equipamento=“UPDATE Equipamento1 SET CODequipamento= ‘$codequipamento’, CODequ2= ‘$codequ2’, Complexidade= ‘$complexidade’,Equipamento= ‘$equipamento’, Area= ‘$area’, ValorUnitario= ‘$valorUnitario’,PerCManuANO= ‘$perCManuANO’,VidaUtilemAnos= ‘$vidaUtilemAnos’, RegradeCriticidade= ‘$regradeCriticidade’, MP_periodicidade= ‘$mp_periodicidade’ WHERE CODE= $code”;

Abs…

Deu isso na primeira sugestão que me deu:

O c�digo recebido �:

Agora vou tirar as "

Ao tirar aa ’ ’ deu esse erro

Erro: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘’ at line 1

Estou buscando estas informações da de um outro código criado abaixo: O primeiro código que enviei acima, esta no script “proc_edita_equipa.php”. Já o código abaixo está no escript “Edit_equipamento”.

<?php session_start(); include_once("conexao.php"); $code = filter_input(INPUT_GET, 'code',FILTER_SANITIZE_NUMBER_INT); $result_equipamento = "SELECT * FROM Equipamento1 WHERE CODE = '$code'"; $resultado_equipamento = mysqli_query ($conn, $result_equipamento); $row_equipamento = mysqli_fetch_assoc($resultado_equipamento); ?>
<head>
	<meta charset="utf-8">
	<title>EDITAR EQUIPAMENTOS </title>
</head>
<body>
	<a href="index.php">Cadastrar</a><br>
	<a href="listar.php">Listar</a><br>
	<h1>EDITAR EQUIPAMENTOS</h1>
	<?php
	if(isset($_SESSION['msg'])){
		echo($_SESSION['msg']);
		unset($_SESSION['msg']); //Destruir variavel global.
	}
	?>
	<form method="post" action="proc_edita_equipa.php">
		<table>
			<td><td><td><td><input type="hidden"name="code" value="<?php echo 
                            $row_equipamento['CODE'];?>"> <br /></td>
		</tr> </tr>
		<tr>
		<td>CODequipamento:</td></td>
			<td><td><td><td><input type="text" name="codequipamento"size="30"value="<?php echo $row_equipamento['CODequipamento'];?>"> <br /></td>
		</tr> </tr>
		<tr>
		<td>CODequ2</td></td>
			<td><td><td><td><input type="text" name="codequ2"size="30"value="<?php 
                              echo $row_equipamento['CODequ2'];?>"> <br /></td>
		</tr> </tr>
		<table>
		<tr>
		<td>Complexidade:</td></td>
                           <td><td><td><td><td><td><td><td><td><td><input type="text" 
                            name="complexidade" size="30"value="<?php echo 
                             $row_equipamento['Complexidade'];?>"> <br /></td>
		</tr> </tr>
		<tr>
		<td>Equipamento:</td></td>
			<td><td><td><td><td><td><td><td><td><td><input type="text" name="equipamento" size="30"value="<?php echo $row_equipamento['Equipamento'];?>"> <br /></td>
		</tr> </tr>
		<table>
		<tr>
		<td>Area:</td></td>
			<td><td><td><td><td><td><td><td><td><td><td><input type="text" 
                           name="area" size="30"value="<?php echo $row_equipamento['Area'];?>"> <br 
                            /></td>
		</tr> </tr>
		<tr>
		<td>ValorUnitario:</td></td>
			<td><td><td><td><td><td><td><td><td><td><td><input type="text" 
                            name="valorUnitario" size="30"value="<?php echo 
                            $row_equipamento['ValorUnitario'];?>"> <br /></td>
		</tr> </tr>
		<table>
		<tr>
		<td>PerCManuANO:</td></td>
			<td><td><td><td><td><td><input type="text" name="perCManuANO" 
                             size="30"value="<?php echo $row_equipamento['PerCManuANO'];?>"> <br /> 
                             </td>
		</tr> </tr>
		<tr>
		<td>VidaUtilemAnos:</td>
			<td><td><td><td><td><td><input type="text" name="vidaUtilemAnos" 
                             size="30"value="<?php echo $row_equipamento['VidaUtilemAnos'];?>"><br /> 
                             </td>
		</tr>
		<table>
		<tr>
		<td>RegradeCriticidade:</td></td>
			<td><td><input type="text" name="regradeCriticidade" size="30"value="<?php 
                             echo $row_equipamento['RegradeCriticidade'];?>"> <br /></td>
		       </tr> </tr>
		<tr>
		<td>MP_periodicidade:</td></td>
			<td><td><input type="text" name="mp_periodicidade" size="30"value="<?php 
                             echo $row_equipamento['MP_periodicidade'];?>"> <br /></td>
		</tr> </tr>
		</table>				
		
		<input type=submit value="Editar">
	</form>
</body>

Substitua CODE por code (minusculo):


include_once(“conexao.php”);

$code = filter_input(INPUT_POST, ‘code’,FILTER_SANITIZE_NUMBER_INT);
$codequipamento = filter_input(INPUT_POST,‘codequipamento’,FILTER_SANITIZE_NUMBER_INT);

Pois o name do input na tela está como (name=“code”) e é essa a chave que vem no request.

Att…

Então o que eu faço?

<?php session_start(); include_once("conexao.php"); $code = filter_input(INPUT_POST, 'code',FILTER_SANITIZE_NUMBER_INT); $codequipamento = filter_input(INPUT_POST,'codequipamento',FILTER_SANITIZE_NUMBER_INT); $codequ2 = filter_input(INPUT_POST,'codequ2',FILTER_SANITIZE_NUMBER_INT); $complexidade = filter_input(INPUT_POST,'complexidade',FILTER_SANITIZE_NUMBER_INT); $equipamento = filter_input(INPUT_POST,'equipamento',FILTER_SANITIZE_STRING); $area = filter_input(INPUT_POST,'area',FILTER_SANITIZE_STRING); $valorUnitario = filter_input(INPUT_POST,'valorUnitario',FILTER_SANITIZE_NUMBER_INT); $perCManuANO = filter_input(INPUT_POST,'perCManuANO',FILTER_SANITIZE_NUMBER_INT); $vidaUtilemAnos = filter_input(INPUT_POST,'vidaUtilemAnos',FILTER_SANITIZE_NUMBER_INT); $regradeCriticidade = filter_input(INPUT_POST,'regradeCriticidade',FILTER_SANITIZE_NUMBER_INT); $mp_periodicidade = filter_input(INPUT_POST,'mp_periodicidade',FILTER_SANITIZE_NUMBER_INT); //echo "CODequipamento: $codequ2"; $result_equipamento="UPDATE Equipamento1 SET CODequipamento= '$codequipamento', CODequ2= '$codequ2', Complexidade= '$complexidade',Equipamento= '$equipamento', Area= '$area', ValorUnitario= '$valorUnitario',PerCManuANO= '$perCManuANO',VidaUtilemAnos= '$vidaUtilemAnos', RegradeCriticidade= '$regradeCriticidade', MP_periodicidade= '$mp_periodicidade' WHERE CODE= $code"; $resultado_equipamento = mysqli_query($conn, $result_equipamento) or die ('Erro: '. mysqli_error($conn)); if(mysqli_affected_rows($conn) > 0) { $_SESSION['msg']= "Equipamento Editado com Sucesso!"; header("Location: listar.php"); }else{ $_SESSION['msg']= "Equipamento nao Editado com Sucesso!"; header("Location: Edit_equipamento.php?CODE=$code"); }

Weslley, funcionou?

Fiz… Se eu tiro a ‘’ do CODE= $code , ele da esse erro:
Erro: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘’ at line 1

Se eu coloco as ‘’ no CODE= ‘$code’ , ele da isso quando mando imprimi para mim na tela:
O codigo recebido e: