Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rogerrosa

UPDATE Mysql

Recommended Posts

Olá Pessoal!

Estou tentando fazer um update em uma seguinte tabela, mas nao estou conseguindo, o codigo é este:

 

 

<?php

$get_id = $_GET["id"];
if ($get_id != "" && is_numeric($get_id)){

require 'conexao.php';

$sql = "select * from clientes where id='$get_id'";
$query = mysql_query($sql) or die("SQL:". $sql . " - ERRO:" . mysql_error());  
while ($linha = mysql_fetch_array($query)) {

$data = $linha['data']; 
$nome = $linha["nome"];
$endereço = $linha['endereço'];
$numero = $linha["numero"]; 
$ip = $linha["ip"];
$mac = $linha["mac"];
$adap = $linha["adaptador"];
$trans = $linha["transmissao"];
$texto = $linha["observaçoes"];

}


if ($data != ""){

function anti_injection($sql)
{

$sql = preg_replace(sql_regcase("/(from|select|insert|delete|destroy|update|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql);
$sql = strip_tags($sql);
$sql = addslashes($sql);
return $sql;
}
function texto2entidade($var) {
$var = str_replace("'", "aspassimples", $var);
$var = preg_replace("/([^ a-zA-Z0-9])/e", "\"\".ord(\"\\0\").\";\"", $var);
$var = str_replace("aspassimples", "'", $var);
return $var;
}
$alterar = anti_injection($_POST["alterar"]);

//nesse caso: if = se $enviado for igual a 1 irá executar o que está dentro das Chaves. 
if($alterar == "1"){
//variavel POST do php serve para importar dados enviados pelo formulario

$nome = anti_injection ($_POST["nome"]);
$endereço = anti_injection($_POST["endereço"]);
$numero = anti_injection($_POST["numero"]); 
$ip = anti_injection($_POST["ip"]);
$mac = anti_injection($_POST["mac"]);
$adap = anti_injection($_POST["adaptador"]);
$trans = anti_injection($_POST["transmissao"]);
$texto = texto2entidade($_POST["observaçoes"]);



include "validar_perfil.php";

if($erro_nome == '' && $erro_endereço == '' && $erro_ip == '' && $erro_adap == '' && $erro_trans == ''){


$sql = "UPDATE clientes (nome, endereço, numero, ip, mac, adaptador, transmissao, observaçoes)
VALUES
('$nome', '$endereço', '$numero', '$ip', '$mac', '$adap', '$trans', '$texto')";

	 $qr  = mysql_query($sql) or die(mysql_error());

           if($qr):
              echo '<script>alert("Alterado com sucesso!")</script>';
           else:
              echo '<script>alert("Erro ao Alterar")</script>';
           endif;


}


}

include 'form_admin.php';


}else {
$erro_id = "ID Não Existe";
}
}else {
$erro_id = "ID Não Existe2";
}

echo $erro_id;
?>

 

 

 

Agradeço desde já!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara não invente sql

 

troque esse código:

UPDATE clientes (nome, endereço, numero, ip, mac, adaptador, transmissao, observaçoes)
 VALUES
 ('$nome', '$endereço', '$numero', '$ip', '$mac', '$adap', '$trans', '$texto')";

por esse:

 

"UPDATE clientes set nome = '$nome', endereco = '$endereco', ip = '$ip', mac = '$mac', adaptador = '$adaptador', transmissao = '$transmissao', observaçoes = '$observacoes'";

Blogtecpi

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha... começa fazendo o seguinte... indente seu código corretamente. Veja como fica mais fácil de localizar os erros:

 

<?php

$get_id = $_GET["id"];

if ($get_id != "" && is_numeric($get_id))
{
	        
	require 'conexao.php';
	
	$sql = "select * from clientes where id='$get_id'";
	$query = mysql_query($sql) or die("SQL:". $sql . " - ERRO:" . mysql_error());  
	while ($linha = mysql_fetch_array($query)) 
	{
		$data = $linha['data']; 
		$nome = $linha["nome"];
		$endereço = $linha['endereço'];
		$numero = $linha["numero"]; 
		$ip = $linha["ip"];
		$mac = $linha["mac"];
		$adap = $linha["adaptador"];
		$trans = $linha["transmissao"];
		$texto = $linha["observaçoes"];
	}
       
	if ($data != "")
	{
	        
		function anti_injection($sql)
		{
			$sql = preg_replace(sql_regcase("/(from|select|insert|delete|destroy|update|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql);
			$sql = strip_tags($sql);
			$sql = addslashes($sql);
			return $sql;
		}
		function texto2entidade($var) 
		{
			$var = str_replace("'", "aspassimples", $var);
			$var = preg_replace("/([^ a-zA-Z0-9])/e", "\"\".ord(\"\\0\").\";\"", $var);
			$var = str_replace("aspassimples", "'", $var);
			return $var;
		}
		$alterar = anti_injection($_POST["alterar"]);
	
		//nesse caso: if = se $enviado for igual a 1 irá executar o que está dentro das Chaves. 
		if($alterar == "1")
		{
			//variavel POST do php serve para importar dados enviados pelo formulario
	
			$nome = anti_injection ($_POST["nome"]);
			$endereço = anti_injection($_POST["endereço"]);
			$numero = anti_injection($_POST["numero"]); 
			$ip = anti_injection($_POST["ip"]);
			$mac = anti_injection($_POST["mac"]);
			$adap = anti_injection($_POST["adaptador"]);
			$trans = anti_injection($_POST["transmissao"]);
			$texto = texto2entidade($_POST["observaçoes"]);
	
			include "validar_perfil.php";
	
			if($erro_nome == '' && $erro_endereço == '' && $erro_ip == '' && $erro_adap == '' && $erro_trans == '')
			{
	        
	         
				$sql = "UPDATE clientes set nome = '$nome', endereco = '$endereco', ip = '$ip', mac = '$mac', adaptador = '$adaptador', transmissao = '$transmissao', observaçoes = '$observacoes'";
				        
				$qr  = mysql_query($sql) or die(mysql_error());
				         
	            if($qr):
	               echo '<script>alert("Alterado com sucesso!")</script>';
	            else:
	               echo '<script>alert("Erro ao Alterar")</script>';
	            endif;
			}
		}        
		include 'form_admin.php';
		
	}
	else 
	{
	        $erro_id = "ID Não Existe";
	}
}
else 
{
        $erro_id = "ID Não Existe2";
}

echo $erro_id;

Veja que a mensagem "ID Não Existe" aparece quando este if falha

if ($data != "")

Então, isto significa que não foi localizado nenhum registro para entrar no while lá em cima, porque $data é vazia. Então, ao que parece, não foi localizado nenhum valor no teu SELECT.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.