Ir para conteúdo

POWERED BY:

Arquivado

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

liviasam

Retornando a página de cadastro

Recommended Posts

Pessoal, quando cadastro um cliente tenho o seguinte código:

 

// Insere os dados no banco
$sql = mysql_query("INSERT INTO clientes VALUES ('', '".$nome."', '".$email."', '".$endereco."', '".$numero."', '".$complemento."', '".$bairro."', '".$cep."', '".$cidade."', '".$uf."', '".$telefone."', '".$celular."', '".$pai."', '".$mae."', '".$sexo."', '".$nascimento."', '".$cpf."')");
// Se os dados forem inseridos com sucesso
if (mysql_affected_rows() > 0){
header('Location: cadastro.php');
exit;
}
else{
echo "Erro ao cadastrar.";
}
Bom, a página e o cadastro.php, depois que cadastro ele retorna a página cadastro.php para eu cadastrar outro cliente, porém queria que ele retornasse a página de cadastro do cliente que acabei de cadastrar com os dados preenchidos.
Tentei usar a função abaixo, mas acho que estou errando em alguma coisa
if (mysql_affected_rows() > 0){
header('Location: cadastro.php?id=<?=$_GET['id'] ?>');
exit;
A id do cliente está como id_cliente, não sei se pode fazer alguma diferença também, alterei e não deu em nada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Buenas,

 

Na hora que você faz um novo cadastro você passa a ID?

Pelo que olhei no seu Insert não.

 

Modo mais "chato", fazer um Select e resgatar o último ID inserido no BD e por no seu header no lugar do "$_GET"(Você esta passando as variáveis por URL?).

 

Modo super "eu li o manual", pode utilizar a função "mysql_insert_id()".

 

Sobre a função:

"mysql_insert_id — Obtém o ID gerado pela operação INSERT anterior.

O valor da função SQL do MySQL LAST_INSERT_ID() sempre contém o valor AUTO_INCREMENT mais recentemente gerado, e não é reiniciado entre as consultas."

 

Aí você utiliza no seu header, ex.:

header('Location: cadastro.php?id=<?php echo mysql_insert_id(); ?>');
Só um exemplo, testa aí e verifica se vai ocorrer tudo certo :rolleyes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

não necessita inserir o id no insert

 

no proprio mysql, cria a tabela com o campo #id , com auto increment

 

muito mais facil

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eduardo, Você não leu bem o que postei.

 

O que você falou já tem, apenas preciso que após o insert fazer voltar a tela de cadastro preenchido.



Tentei Marcelo, mas ele cadastra e volta a tela de cadastro em branco. E no link acima ele fica assim:

 

cadastro.php?id=<?php%20echo%20mysql_insert_id();%20?>

 

Vou dar uma estudada aqui e vê o que modifico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas veja essa função, é com ela que você vai conseguir o último ID inserido em sua tabela, questão de ajustes no seu código você vai conseguir fazer o que quiser... Você vai ter que tratar a tela de cadastro também, criar um Select pra popular os campos após receber esse ID. Tente por ele em uma variável pra ir testando e pra ver que valor ele retorna, após isso confira com o valor que esta na sua tabela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, vou trabalhar em cima disso que você me passou. Os campos já estão tratados.

 

Agora vou alterando para ver se consigo. Se conseguir posto a solução aqui. Obrigada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, você pode fazer o redirecionamento para cadastro.php sem parâmetros mesmo, nesta página você pode montar um select para pegar o último registro e com estes valores você pode coloca-los nos inputs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi um pouco, mas no caso não seria ir para outra página aonde eu definisse o último registro sempre?

 

Uma página de edição tipo: editar.php que sempre recuperasse o último registro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

#5

 

header('Location: cadastro.php?id=<?php echo mysql_insert_id(); ?>');

:seta:

header('Location: cadastro.php?id=' . mysql_insert_id());

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perfeito hinom,

 

Deu certinho essa mudança. Apenas tratei uma página de edição e a redirecionei para ela. editar.php. Assim cadastro o cliente e ele já vai para a página de edição, assim já verifico se está tudo ok e confirmo.

 

Obrigado também aos que me deram algumas opções.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

#5

 

header('Location: cadastro.php?id=<?php echo mysql_insert_id(); ?>');

:seta:

header('Location: cadastro.php?id=' . mysql_insert_id());

 

 

Foi o que falei no #2... era só ter ajustado... :graduated: :nataltongue:

Compartilhar este post


Link para o post
Compartilhar em outros sites

#12 isso é zuado aqui não tem controle algum sobre reputações e posts resolvidos..

 

levei uns pontos de graça pelo "seu trabalho" kkkk

 

vou acompanhar mais os seus posts para ganhar mais pontos.

rsrs

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.