Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera to com um problema creio que simples, mas já estou dia e noite quebrando a cabeça e nao consigo resolver, peguei um sistema aq do forum e modifiquei algumas coisas...
O problema é o seguinte: consigo cadastrar, visualisar e baixar as informações do banco de dados mas ao EDITAR ou EXCLUIR sempre da erro... http://www.doguinhos.com/sistema/
o codigo salvar_edicao.php
<?php
if($_SERVER["REQUEST_METHOD"] == "POST") {
$id = $_POST["id_usuario"];
$nome = $_POST["nome"];
$denominacao = $_POST["denominacao"];
$endereco = $_POST["endereco"];
$cep = $_POST["cep"];
$bairro = $_POST["bairro"];
$cidade = $_POST["cidade"];
$estado = $_POST["estado"];
$fone = $_POST["fone"];
$fax = $_POST["fax"];
$cnpj = $_POST["cnpj"];
$inscricao = $_POST["inscricao"];
$ramo = $_POST["ramo"];
$comprador = $_POST["comprador"];
$frete = $_POST["frete"];
$entrega = $_POST["entrega"];
$cobranca = $_POST["cobranca"];
$transporte = $_POST["transporte"];
$condicoes = $_POST["condicoes"];
$pendencias = $_POST["pendencias"];
$outros = $_POST["outros"];
if(file_exists("init.php")) {
require "init.php";
} else {
echo "Arquivo init.php nao foi encontrado";
exit;
}
if(!function_exists("Abre_Conexao")) {
echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
exit;
}
Abre_Conexao();
if(@mysql_query("UPDATE usuarios SET
nome = '$nome',
denominacao = '$denominacao',
endereco = '$endereco',
cep = '$cep',
bairro = '$bairro',
cidade = '$cidade',
estado = '$estado',
fone = '$fone',
fax = '$fax',
cnpj = '$cnpj',
inscricao = '$inscricao',
ramo = '$ramo',
comprador = '$comprador',
frete = '$frete',
entrega = '$entrega',
cobranca = '$cobranca',
transporte = '$transporte',
condicoes = '$condicoes',
pendencias = '$pendencias',
outros = '$outros'
WHERE id_usuario = $id")) {
if(mysql_affected_rows() == 1){
echo "Registro atualizado com sucesso";
}
} else {
if(mysql_errno() == 1062) {
echo $erros[mysql_errno()];
exit;
} else {
echo "Erro nao foi possivel efetuar a edição";
exit;
}
@mysql_close();
}
}
?>
<a href="listar.php">Voltar</a>
esse o excluir.php
<?php
include('includes/topo.php');
?>
<?php
if($_SERVER["REQUEST_METHOD"] == "GET") {
if(file_exists("init.php")) {
require "init.php";
} else {
echo "Arquivo init.php nao foi encontrado";
exit;
}
if(!function_exists("Abre_Conexao")) {
echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
exit;
}
$id = $_GET["id"];
Abre_Conexao();
if(mysql_query("delete from usuarios where id_cliente = $id")) {
if(mysql_affected_rows() == 1){
echo "Registro deletado com sucesso<br />";
}
}
}
?>
<a href="listar.php">Voltar</a>como você garante que as variáveis estão setadas?
coloque um isset($_POST['nome_do_campo']) ... se for verdadeiro, você seta a variável...senão você seta um valor "vazio" para variável....
tipo assim:
if (isset($_POST['nome'])) $nome = $_POST['nome']; else $nome = '';
acho que tem variavel vindo "Não definida" e ai da erro no update....
se a variavel $id estiver vazia, pare a execução do sistema
galera achei esse erro aqui colocando a dica do williams
Notice: Undefined index: id_usuario in /var/www/html/doguinhos.com/web/sistema/salvar_edicao.php on line 8
Notice: Undefined index: estado in /var/www/html/doguinhos.com/web/sistema/salvar_edicao.php on line 15
Erro nao foi possivel efetuar a edição
usa a minha dica então, prossivelmente o campo id usuario e estado não foi preenchido no seu formulário, ou a captura está errada, verifique por que ele não está sendo preenchido com o isset e pronto :D
verifica o nome dos campos certinho, e blza
will eu sou leigo ainda, to aprendendo agora rs, como e aonde coloco esse codigo que vc esta me dizendo?
if (isset($_POST['nome'])) $nome = $_POST['nome']; else $nome = '';
// ai vc vai trocando pelo nome das suas variaveis...
// tipo pra estado:
if (isset($_POST['estado'])) $estado = $_POST['estado']; else $estado = '';
isso vai garantir que as variáveis vão sempre definidas (mesmo que nulas) para o update, que o erro que aconteceu pare de acontecer,e que o update execute sem problemas (dependendo da configuração do banco), mas eu te recomendo procurar por Validação via Javascript pra campos obrigatórios antes de clicar em **Enviar **no seu formulário para você garantir que os campos que não podem ser nulos estejam preenchidos, antes de chegar na pagina que leva a atualização do bancoMas isso não garante que os dados estão sendo preenchidos. Isso apenas evitará o notice do PHP. O melhor é você debugar. Use var_dump().
Nesse caso, pra você saber se foi preenchido algum valor, ou qual retorno dele. Coloque a váriavel ou objeto, etc. dentro do var_dump.
Assim você saberá se você recebeu oque pediu ou necessita.
@Edit:
Você precisa saber oque você tem (dados), pra saber oque você quer e e onde quer chegar.
will o codigo ficou assim... mais ainda nao funciona...
cleiton como usar o var_dump
<?php
ini_set( 'display_errors', true );
error_reporting( E_ALL );
if($_SERVER["REQUEST_METHOD"] == "POST") {
$id = $_POST["id"];
$nome = $_POST["nome"];
$denominacao = $_POST["denominacao"];
$endereco = $_POST["endereco"];
$cep = $_POST["cep"];
$bairro = $_POST["bairro"];
$cidade = $_POST["cidade"];
$estado = $_POST["estado"];
$fone = $_POST["fone"];
$fax = $_POST["fax"];
$cnpj = $_POST["cnpj"];
$inscricao = $_POST["inscricao"];
$ramo = $_POST["ramo"];
$comprador = $_POST["comprador"];
$frete = $_POST["frete"];
$entrega = $_POST["entrega"];
$cobranca = $_POST["cobranca"];
$transporte = $_POST["transporte"];
$condicoes = $_POST["condicoes"];
$pendencias = $_POST["pendencias"];
$outros = $_POST["outros"];
if(file_exists("init.php")) {
require "init.php";
} else {
echo "Arquivo init.php nao foi encontrado";
exit;
}
if(!function_exists("Abre_Conexao")) {
echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
exit;
}
Abre_Conexao();
if(@mysql_query("UPDATE usuarios SET
nome = '$nome',
denominacao = '$denominacao',
endereco = '$endereco',
cep = '$cep',
bairro = '$bairro',
cidade = '$cidade',
estado = '$estado',
fone = '$fone',
fax = '$fax',
cnpj = '$cnpj',
inscricao = '$inscricao',
ramo = '$ramo',
comprador = '$comprador',
frete = '$frete',
entrega = '$entrega',
cobranca = '$cobranca',
transporte = '$transporte',
condicoes = '$condicoes',
pendencias = '$pendencias',
outros = '$outros'
WHERE nome = $id")) {
if(mysql_affected_rows() == 1){
echo "Registro atualizado com sucesso";
}
} else {
if(mysql_errno() == 1062) {
echo $erros[mysql_errno()];
exit;
} else {
echo "Erro nao foi possivel efetuar a edição";
exit;
}
@mysql_close();
}
if (isset($_POST['nome'])) $nome = $_POST['nome']; else $nome = '';
if (isset($_POST['denominacao'])) $denominacao = $_POST['denominacao']; else $denominacao = '';
if (isset($_POST['endereco'])) $endereco = $_POST['endereco']; else $endereco = '';
if (isset($_POST['cep'])) $cep = $_POST['cep']; else $cep = '';
if (isset($_POST['bairro'])) $bairro = $_POST['bairro']; else $bairro = '';
if (isset($_POST['cidade'])) $cidade = $_POST['cidade']; else $cidade = '';
if (isset($_POST['estado'])) $estado = $_POST['estado']; else $estado = '';
if (isset($_POST['fone'])) $fone = $_POST['fone']; else $fone = '';
if (isset($_POST['fax'])) $fax = $_POST['fax']; else $fax = '';
if (isset($_POST['cnpj'])) $cnpj = $_POST['cnpj']; else $cnpj = '';
if (isset($_POST['inscricao'])) $inscricao = $_POST['inscricao']; else $inscricao = '';
if (isset($_POST['ramo'])) $ramo = $_POST['ramo']; else $ramo = '';
if (isset($_POST['comprador'])) $comprador = $_POST['comprador']; else $comprador = '';
if (isset($_POST['frete'])) $frete = $_POST['frete']; else $frete = '';
if (isset($_POST['entrega'])) $entrega = $_POST['entrega']; else $entrega = '';
if (isset($_POST['cobranca'])) $cobranca = $_POST['cobranca']; else $cobranca = '';
if (isset($_POST['transporte'])) $transporte = $_POST['transporte']; else $transporte = '';
if (isset($_POST['condicoes'])) $condicoes = $_POST['condicoes']; else $condicoes = '';
if (isset($_POST['pendencias'])) $pendencias = $_POST['pendencias']; else $pendencias = '';
if (isset($_POST['outros'])) $outros = $_POST['outros']; else $outros = '';
}
?>
<a href="listar.php">Voltar</a>Novamente... retire o @. Exiba os erros. E antes de realizar a lógica do algoritmo, verifique se você recebeu oque pede.
Como usar var_dump(); - isso é um mistério, sem solução. :O
coloca isso:
if (isset($_POST['nome'])) $nome = $_POST['nome']; else $nome = '';
if (isset($_POST['denominacao'])) $denominacao = $_POST['denominacao']; else $denominacao = '';
if (isset($_POST['endereco'])) $endereco = $_POST['endereco']; else $endereco = '';
if (isset($_POST['cep'])) $cep = $_POST['cep']; else $cep = '';
if (isset($_POST['bairro'])) $bairro = $_POST['bairro']; else $bairro = '';
if (isset($_POST['cidade'])) $cidade = $_POST['cidade']; else $cidade = '';
if (isset($_POST['estado'])) $estado = $_POST['estado']; else $estado = '';
if (isset($_POST['fone'])) $fone = $_POST['fone']; else $fone = '';
if (isset($_POST['fax'])) $fax = $_POST['fax']; else $fax = '';
if (isset($_POST['cnpj'])) $cnpj = $_POST['cnpj']; else $cnpj = '';
if (isset($_POST['inscricao'])) $inscricao = $_POST['inscricao']; else $inscricao = '';
if (isset($_POST['ramo'])) $ramo = $_POST['ramo']; else $ramo = '';
if (isset($_POST['comprador'])) $comprador = $_POST['comprador']; else $comprador = '';
if (isset($_POST['frete'])) $frete = $_POST['frete']; else $frete = '';
if (isset($_POST['entrega'])) $entrega = $_POST['entrega']; else $entrega = '';
if (isset($_POST['cobranca'])) $cobranca = $_POST['cobranca']; else $cobranca = '';
if (isset($_POST['transporte'])) $transporte = $_POST['transporte']; else $transporte = '';
if (isset($_POST['condicoes'])) $condicoes = $_POST['condicoes']; else $condicoes = '';
if (isset($_POST['pendencias'])) $pendencias = $_POST['pendencias']; else $pendencias = '';
if (isset($_POST['outros'])) $outros = $_POST['outros']; else $outros = '';
no lugar disso:
$nome = $_POST["nome"];
$denominacao = $_POST["denominacao"];
$endereco = $_POST["endereco"];
$cep = $_POST["cep"];
$bairro = $_POST["bairro"];
$cidade = $_POST["cidade"];
$estado = $_POST["estado"];
$fone = $_POST["fone"];
$fax = $_POST["fax"];
$cnpj = $_POST["cnpj"];
$inscricao = $_POST["inscricao"];
$ramo = $_POST["ramo"];
$comprador = $_POST["comprador"];
$frete = $_POST["frete"];
$entrega = $_POST["entrega"];
$cobranca = $_POST["cobranca"];
$transporte = $_POST["transporte"];
$condicoes = $_POST["condicoes"];
$pendencias = $_POST["pendencias"];
$outros = $_POST["outros"];
toma cuidado com essa usuario_id, pelo q eu vi no erro, ela está indo sem definição, isso vai continuar te dando erro no update....
da uma olhada na validação do form, se você estiver usando HTML5, coloca um required="required" nos campos obrigatórios
e tira os "@" pra mostrar os erros... isso ajuda muito!
da uma lida no var_dump() pra você saber se as variáveis foram todas definidas
>
coloca isso:
if (isset($_POST['nome'])) $nome = $_POST['nome']; else $nome = '';
O correto é utlizar operador ternário neste caso, e não um aglomerado de if else
Ex.:
$nome = isset( $_POST['nome'] ) ? !empty( $_POST['nome'] ) : 'Ops a variável esta vazia';
$nome = isset( $_POST['nome'] ) ? !empty( $_POST['nome'] ) : null;
$nome = isset( $_POST['nome'] ) ? !empty( $_POST['nome'] ) : '';>
O correto é utlizar operador ternário neste caso, e não um aglomerado de if else
Ex.:
$nome = isset( $_POST['nome'] ) ? !empty( $_POST['nome'] ) : 'Ops a variável esta vazia';
$nome = isset( $_POST['nome'] ) ? !empty( $_POST['nome'] ) : null;
$nome = isset( $_POST['nome'] ) ? !empty( $_POST['nome'] ) : '';
Fiquei com medo de confundi-lo, ele disse q está começando agora....
já alterei esse codigo mill vezes e até agora nada =/
maldita falta de inteligência...
<?php
ini_set( 'display_errors', true );
error_reporting( E_ALL );
if($_SERVER["REQUEST_METHOD"] == "POST") {
if (isset($_POST['id'])) $id = $_POST['id']; else $id = '';
if (isset($_POST['nome'])) $nome = $_POST['nome']; else $nome = '';
if (isset($_POST['denominacao'])) $denominacao = $_POST['denominacao']; else $denominacao = '';
if (isset($_POST['endereco'])) $endereco = $_POST['endereco']; else $endereco = '';
if (isset($_POST['cep'])) $cep = $_POST['cep']; else $cep = '';
if (isset($_POST['bairro'])) $bairro = $_POST['bairro']; else $bairro = '';
if (isset($_POST['cidade'])) $cidade = $_POST['cidade']; else $cidade = '';
if (isset($_POST['estado'])) $estado = $_POST['estado']; else $estado = '';
if (isset($_POST['fone'])) $fone = $_POST['fone']; else $fone = '';
if (isset($_POST['fax'])) $fax = $_POST['fax']; else $fax = '';
if (isset($_POST['cnpj'])) $cnpj = $_POST['cnpj']; else $cnpj = '';
if (isset($_POST['inscricao'])) $inscricao = $_POST['inscricao']; else $inscricao = '';
if (isset($_POST['ramo'])) $ramo = $_POST['ramo']; else $ramo = '';
if (isset($_POST['comprador'])) $comprador = $_POST['comprador']; else $comprador = '';
if (isset($_POST['frete'])) $frete = $_POST['frete']; else $frete = '';
if (isset($_POST['entrega'])) $entrega = $_POST['entrega']; else $entrega = '';
if (isset($_POST['cobranca'])) $cobranca = $_POST['cobranca']; else $cobranca = '';
if (isset($_POST['transporte'])) $transporte = $_POST['transporte']; else $transporte = '';
if (isset($_POST['condicoes'])) $condicoes = $_POST['condicoes']; else $condicoes = '';
if (isset($_POST['pendencias'])) $pendencias = $_POST['pendencias']; else $pendencias = '';
if (isset($_POST['outros'])) $outros = $_POST['outros']; else $outros = '';
if(file_exists("init.php")) {
require "init.php";
} else {
echo "Arquivo init.php nao foi encontrado";
exit;
}
if(!function_exists("Abre_Conexao")) {
echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
exit;
}
Abre_Conexao();
if(mysql_query("UPDATE usuarios SET
nome = '$nome',
denominacao = '$denominacao',
endereco = '$endereco',
cep = '$cep',
bairro = '$bairro',
cidade = '$cidade',
estado = '$estado',
fone = '$fone',
fax = '$fax',
cnpj = '$cnpj',
inscricao = '$inscricao',
ramo = '$ramo',
comprador = '$comprador',
frete = '$frete',
entrega = '$entrega',
cobranca = '$cobranca',
transporte = '$transporte',
condicoes = '$condicoes',
pendencias = '$pendencias',
outros = '$outros'
WHERE nome = $id")) {
if(mysql_affected_rows() == 1){
echo "Registro atualizado com sucesso";
}
} else {
if(mysql_errno() == 1062) {
echo $erros[mysql_errno()];
exit;
} else {
echo "Erro nao foi possivel efetuar a edição";
exit;
}
mysql_close();
}
}
?>
<a href="listar.php">Voltar</a>
galera, troquei o "id_usuario" do banco de dados e de todas as paginas somente por "id" nao sei pq rsrs mas agora deu certo, obrigado pela ajuda ai, e se alguem puder me indicar algum site de curso/tutorial pra eu poder aprender sobre esses codigos e tals, agradeçoo. vlwww
>
Fiquei com medo de confundi-lo, ele disse q está começando agora....
:thumbsup:
<?php
ini_set('display_errors', true);
error_reporting(E_ALL);
if (file_exists("init.php")) {
require "init.php";
} else {
echo "Arquivo init.php nao foi encontrado";
exit;
}
function conectar($host, $user, $pass, $banco) {
$conexao = mysql_connect($host, $user, $pass);
if ($conexao) {
$banco = mysql_selectdb($banco, $conexao);
}
return $conexao;
}
function desconectar($conect) {
$desconectar = mysql_close($conect);
return $desconectar;
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nome = (isset($_POST["nome"]) ) ? $_POST["nome"] : null;
$denominacao = (isset($_POST["denominacao"]) ) ? $_POST["denominacao"] : null;
$endereco = (isset($_POST["endereco"]) ) ? $_POST["endereco"] : null;
$cep = (isset($_POST["cep"]) ) ? $_POST["cep"] : null;
$bairro = (isset($_POST["bairro"]) ) ? $_POST["bairro"] : null;
$cidade = (isset($_POST["cidade"]) ) ? $_POST["cidade"] : null;
$estado = (isset($_POST["estado"]) ) ? $_POST["estado"] : null;
$fone = (isset($_POST["fone"]) ) ? $_POST["fone"] : null;
$fax = (isset($_POST["fax"]) ) ? $_POST["fax"] : null;
$cnpj = (isset($_POST["cnpj"]) ) ? $_POST["cnpj"] : null;
$inscricao = (isset($_POST["inscricao"]) ) ? $_POST["inscricao"] : null;
$ramo = (isset($_POST["ramo"]) ) ? $_POST["ramo"] : null;
$comprador = (isset($_POST["comprador"]) ) ? $_POST["comprador"] : null;
$frete = (isset($_POST["frete"]) ) ? $_POST["frete"] : null;
$entrega = (isset($_POST["entrega"]) ) ? $_POST["entrega"] : null;
$cobranca = (isset($_POST["cobranca"]) ) ? $_POST["cobranca"] : null;
$transporte = (isset($_POST["transporte"]) ) ? $_POST["transporte"] : null;
$condicoes = (isset($_POST["condicoes"]) ) ? $_POST["condicoes"] : null;
$pendencias = (isset($_POST["pendencias"]) ) ? $_POST["pendencias"] : null;
$outros = (isset($_POST["outros"]) ) ? $_POST["outros"] : null;
if (!function_exists("Abre_Conexao")) {
echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
exit;
}
$conect = conectar('localhost', 'root', 'iso9001', 'pstutoriais');
$sql = "UPDATE usuarios SET
nome = '$nome',
denominacao = '$denominacao',
endereco = '$endereco',
cep = '$cep',
bairro = '$bairro',
cidade = '$cidade',
estado = '$estado',
fone = '$fone',
fax = '$fax',
cnpj = '$cnpj',
inscricao = '$inscricao',
ramo = '$ramo',
comprador = '$comprador',
frete = '$frete',
entrega = '$entrega',
cobranca = '$cobranca',
transporte = '$transporte',
condicoes = '$condicoes',
pendencias = '$pendencias',
outros = '$outros'
WHERE nome = $id";
$executeSql = mysql_query($sql) or die("Erro ao executar o update, verifique tabela, e conexão.");
if ($executeSql) {
echo 'Registro atualizado com sucesso!';
} else {
if (mysql_errno() == 1062) {
echo $erros[mysql_errno()];
exit;
} else {
echo "Erro nao foi possivel efetuar a edição";
exit;
}
}
desconectar($conect);
}
?>
<a href="listar.php">Voltar</a>
Modifiquei algumas coisas no seu código.
Teste o meu, se der certo, faça a comparação para assim aprender mais, mais e mais...
Utilize mysql_error() para reportar os erros da SQL, e evite @ para camuflar os erros.
Configure seu código para exibir TODAS as mensagens de erro, adicionando este código à primeira linha do script.
Leia tambémhttp://forum.imasters.com.br/topic/375800-orientaes-para-uma-boa-participao/