rogerrosa 0 Denunciar post Postado Janeiro 30, 2010 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
jan_legacy 0 Denunciar post Postado Janeiro 30, 2010 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
rogerrosa 0 Denunciar post Postado Janeiro 30, 2010 Fiz a troca tudo beleza... Mas quando tento alterar ela da o erro : ID NAO EXISTE.. obg Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Janeiro 30, 2010 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
rogerrosa 0 Denunciar post Postado Janeiro 30, 2010 Desculpe Corrigindo o erro q aparece é ID NAO EXISTE2. Obg Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Janeiro 31, 2010 Então significa que não passou do primeiro if if ($get_id != "" && is_numeric($get_id)) Ou seja, $get_id é vazio ou não é numérico. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites