Ir para conteúdo

Arquivado

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

João Marcos Ferlini

Editando e Excluindo

Recommended Posts

Bom, já li muitos tópicos sobre isso, mais ainda estou com dúvidas.

 

Uns dizem que posso direcionar um link somente com o ID. Correto?

 

Até tudo bem, eu já fiz isso

 

$sql = "SELECT * FROM cad_nfe WHERE id=".$_GET['id'];//este vai buscar o id por post que é passado por variavel

 

Agora na página editar.php, eu coloquei este script para puxar os dados:

 

<?
include("conexao.php");

$sql = "SELECT * FROM cad_nfe WHERE id=".$_GET['id'];//este vai buscar o id por post que é passado por variavel
$resultado = mysql_query($sql) or die ("Não foi possível realizar a consulta.");
$linha = mysql_fetch_array($resultado);


$datacadastro = $_GET['datacadastro'];
$nomecliente = $_GET['nomecliente'];
$nomeformando = $_GET['nomeformando'];
$datavenda = $_GET['datavenda'];
$ncontrato = $_GET['ncontrato'];
$nalbum = $_GET['nalbum'];
$senha = $_GET['senha'];
?>

 

Problema:

 

Ainda não aparece os dados, somente o ID que aparece. Eu quero que apareça os dados que já estão cadastrados para esse ID.

 

Alguma sugestão?

Compartilhar este post


Link para o post
Compartilhar em outros sites

vou tentar explicar a funcionalidade do que você esta usando.

 

o ID vem de identificação, ele é usado para distinguir um produto de outro.

 

o get ele é uma variavel global que recupera seus valores da URL, exemplo:

 

www.meusite.com.br/produtos.php?id=10

 

se a sua url é essa e você for na pagina produtos.php e recuperar $_GET['id'] ele vai te retornar 10

 

repare que sempre utilizo get e o que vem dentro dos cholcetes é o nome que esta na url.

 

ou seja os valores de get só serão recuperados se existirem na url e foi o que você fez de errado na recuperação de dados.

 

depois que você fez sua consulta todos os dados recuperados do banco de dados ficaram salvos em $linha

 

então ficaria

 

$datacadastro = $linha['datacadastro'];
$nomecliente = $linha['nomecliente'];
$nomeformando = $linha['nomeformando'];

e assim sucessivamente a todos os campos ou mesmo não precisa criar uma variavel nova para isso

só recupere $linha['nomeDoCampoDaTabela']

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?
include("conexao.php");

$sql = "SELECT * FROM cad_nfe WHERE id=".$_GET['id'];//este vai buscar o id por post que é passado por variavel
$resultado = mysql_query($sql) or die ("Não foi possível realizar a consulta.");
$linha = mysql_fetch_array($resultado);


$datacadastro = $_GET['datacadastro'];
$nomecliente = $_GET['nomecliente'];
$nomeformando = $_GET['nomeformando'];
$datavenda = $_GET['datavenda'];
$ncontrato = $_GET['ncontrato'];
$nalbum = $_GET['nalbum'];
$senha = $_GET['senha'];
?>

 

Cara, eu acho q você esta errando neste ponto acima.

 

Quando você faz o select, o valor que retorna do banco esta na variável $linha. Para setar os valores na tela, você pode criar um script em JavaScript ou setar no valor do input, segue exemplo:

 

Via java scritp:

 

você vai chamar uma funcao javascript assim que tiver os dados do banco:

 

$linha = mysql_fetch_array($resultado);

<script type="text/javascript">
setaCampos('<? echo $linha[0]["datacadastro"]; ?>','<? echo $linha[0]["
"]; ?> ', '<? echo $linha[0]["nomeformando"]; ?> ','<? echo $linha[0]["datavenda"]; ?> ', '<? echo $linha[0]["ncontrato"]; ?>');
</script>

function setaCampos(datacadastro , nomecliente, nomeformando , datavenda, ncontrato, nalbum){

  document.getElementById("datacadastro").value = datacadastro;
  document.getElementById("nomecliente").value = nomecliente;
  document.getElementById("nomeformando").value = nomeformando;
  document.getElementById("datavenda").value = datavenda;

  //e preenche para todos os campos da sua tela
}

 

Ou setando os valores direto no Inputlinha

 

<input type="text" value="<?=$linha[0]["datacadastro"]?>" >

E assim por diante...

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu apenas passei como recuperar os valores que estão incorretos, estou tentando faze-lo entender.

 

mais se a ideia era passar isso para um input sua saída pode ser uma boa ideia.

 

vlw por complementar eu posso ter me enganado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, eu entendi.

 

Só que eu preciso editar os dados, até agora sei que errei, mas ainda fiquei confuso em relação a como ficaria.

 

Estou usando:

 

<a href=editar_nfe.php?id='.$dados['id'].'&datacadastro='.$dados['datacadastro'].'&nomecliente='.$dados['nomecliente'].'&nomeformando='.$dados['nomeformando'].'&datavenda='.$dados['datavenda'].'>Editar</a>

 

Para editar os dados e jogar no URL.

 

Só que até o

'&nomecliente='.$dados['nomecliente'].'

e pega o primeiro nome antes do 'espaço de separação das palavras' e os outros campos não puxam nem aparecem. Qual o erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites
preciso editar os dados,

aí já é uma 2ª operação (uma 2ª etapa, vamos dizer)

você vai usar o comando Update depois da seleção ("select").

em + detalhes:

1- recuperado o registro pelo comando "select" (é 1 comando SQL, guarde isso);

como o spdio disse acima, você pode montar 1 formulário com os campos do formulário (imputs)

preenchidos:

Ou setando os valores direto no Inputlinha

<input type="text" value="<?=$linha[0]["datacadastro"]?>" >

2- p/ isso você terá q ter uma outra instrução SQL, ex:

Update tabela set campo 1=valor digitado no form no impout text correspondente,
campo 2=valor digitado no 2º imput text..etc..
where id=(ao id recuperado pelo "select")

(Não esqueça o where ou toda a tabela será alterada)

3- após alterar os dados do form, só enviar ao banco normal (botão submit)

este form poderá ter uma "action" direcionando a 1 pg que exibirá uma mensagem,

tipo "dados alterados com sucesso" e 1 link..

mas olha... não me leve a mal, tem mtos tutoriais sobre isso..

d 1 pesquisada e qqer coisa retorne, sem problema..

obs final: para apagar, o comando é outro, ok?

vão ai umas otimas dicas sobre SQL:

http://www.linhadecodigo.com.br/artigo/2975/comandos-basicos-em-sqlinsert-update-delete-e-select.aspx

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, consegui entender, o melhor funcionou.

 

Agora só tenho um problema.

 

Quando um campo tem "espaço" por exemplo João Marcos e clico no link editar, ele não puxa os valores dos outros campos por haver o espaço entre as palavras.

 

Já teste colocando JoãoMarcos sem espaço, depois que clico no link ele aparece todos os campos. Agora se um campo tiver espaço, os campos da sequência não aparecem os dados.

 

Alguem já teve problema parecido? Eu não sei onde está o erro!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu acho que você está complicando um pouquinho as coisas...

Você pode passar via URL somente o código do usuário, e na página de edição, veja se o meio de acesso é por GET e tem o código do usuario informado. Se tiver, recupere do banco e preencha o formulário com os dados dele.

 

Fiz um exemplo bem simples, sem validação dos dados, mas que exemplifica o que estou dizendo.

 

É bem mais simples do que imagina ;)

 

@braços e fique com Deus!

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.