Ir para conteúdo

Arquivado

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

Vítor Gonçalves

formulario

Recommended Posts

boa noite, sou novo por aqui e estou começando a estudar php e estou precisando de uma ajuda

criei um formulario de cadastro (nome, email, estado civil, etc) o mesmo é enviado no modo POST

para o banco de dados mysql, criei outro onde posso listar os cadastros enviados e nesse criei uma

opção de "editar os dados enviados", aew esta minha pergunta como faço para editar os dados enviados

no modo que eles retornem uma pagina em modo de formulario com os dados digitados anteriormente??

 

por favor me ajudem.. já pesquisei no google, youtube e não tenho mais ideias de como conseguir

desde já grato pela ajuda

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá! Você pode primeiro buscar esses dados, e depois mostrar nos campos (Value="").

 

OBS: Te enviei uma mensagem, olhe na Caixa de Entrada do Fórum :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vitor meu brother td certo??

 

Como você esta começando agora eu vou tentar te explicar em detalhes ai se você não entender alguma coisa você me pergunta ai que eu te respondo.

 

Bem os sistemas de dados, não importa quais são estes dados sempre possuem três partes (ou funções) cadastro, edição e exclusão, pelo que eu vi você ja sabe a parte do cadastro então irei para a edição.

 

Quando você criar um link que leva para a página de edição você precisa informar o ID do registro que você deseja editar, desta forma é possível pesquisar no banco de dados este registro e editá-lo, temos duas formas de fazê-lo, uma pelo método POST e outra pelo GET.

 

No método GET é possível fazer apenas informando o id ao final da URL, é mais utilizado para links. Bem é o seguinte o link vai ficar da seguinte forma:

 

pagina-que-edita.php?id=1

 

pagina-que-edita.php é a página com o formulário de edição

? é o que separa a página dos parametrôs

id= é o nome através do GET que será utilizado para retornar este parâmetro

1 é o id do arquivo.

 

O método POST é mais utilizado para formulários, onde você vai criar um campo do tipo hidden com o nome id e o valor vai ser a id que deseja editar.

 

Na próxima página, a que contém o formulário de edição, você deve recuperar esta id através do método escolhido e buscar o registro no banco de dados, então no caso eu irei exemplificar com o método GET mas para utilizar o POST é só mudar a palavra de GET para POST

 

suponhamos então que a URL passada foi: editar.php?id=1

 

Agora irei criar aqui a página editar.php

<?php

#PRIMEIRO DEVEMOS INCLUIR A CONEXÃO DO BANCO DE DADOS, EU VOU SUPOR QUE ISTO você JA FEZ EM UM ARQUIVO CHAMADO CONEXAO.PHP
include('conexao.php');

#AGORA IREMOS RECUPERAR A ID ATRAVÉS DO MÉTODO GET
$id = $_GET['id'];

#VAMOS AGORA BUSCAR ESTES DADOS
$sql = mysql_query("SELECT * FROM tb_dados WHERE id = '$id'");

#P.s. este id = '$id' que eu coloquei este primeiro escrito id, não o da variável tem qu#e ser o mesmo nome da chave primaria do registro na tabela.

#CRIAMOS AGORA UMA VARIÁVEL QUE VAI RECEBER OS DADOS RETORNADOS PELO COMANDO MYSQL_FETCH#_ASSOC ---- AQUI ESTA O SEGREDO ---
$dado = mysql_fetch_assoc($sql);

#AGORA A VARIAVEL $DADO SE TRANSFORMOU EM UM ARRAY QUE RETORNA OS DADOS DA#TABELA DA SEGUINTE FORMA $dado['nome_do_campo_na_tabela']; Ou seja basta #você incluir este array dentro do campo value dos seus formulários. Ex.:


?>

<input type='text' nome='nome_do_campo' value='<?php echo $dado['campo_da_tabale']; ?>' />


Entendeu??

 

Bem agora a parte de atualização, vamos tomar como exemplo que a sua tabela é a seguinte:

 

Nome da tabela: tb_dados

campos:

id - Chave Primaria

nome - Nome do usuário

idade - idade do usuário

 

Após ter recebido estes dados, mostrado eles no formulário e editado eles você envia o formulário, agora com o método POST para uma página que receberá estes dados, que ficará da seguinte forma:

#INCLUI A CONEXÃO
include('conexao.php');

$id = $_POST['id'];
$nome = $_POST['nome'];
$idade = $_POST['idade'];

$editar = mysql_query("UPDATE tb_dados SET nome='$nome', idade='$idade' WHERE id = '$id'");

Desta forma os dados serão editados, você pode após isto redirecionar o usuário para a página onde você deseja que ele vá após a edição dos dados

if($editar){

  header("Location: pagina_redirecionada.php");

}

Ou seja, se a variável $editar que foi a que realizou o update no banco de dados retornou verdadeira é pq você conseguiu editar, então ele vai utilizar o comando header que redireciona o usuário para a página que você quiser após a edição.

 

Para excluir um registro é a mesma coisa, a única diferença é que você vai precisar apenas do ID que você deseja excluir o comando ficaria assim:

 

$excluir = mysql_query("DELETE FROM tb_dados WHERE id = '$id'");

 

 

Brother, consegui clarear tuas ideias??

 

Qualquer dúvida pergunta ai ;)

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou com uma certa dificuldade de entender sendo assim vou postar meu arquivo "alterar.php" é onde estou com dificuldade de fazer funcionar.. esse "alterar.php" abre o formulario para edição mas como tinha dito preciso com os dados.. é aewww que to apanhando.. tá aki meu arquivo php

 

 

<html>
<head>
</head>
<body>


<?php
// MINHA DIFICULDADE ESTA AKI //


 $con = mysqli_connect("localhost", "root", "root") 
     or die('Não foi possível conectar');
mysqli_select_db($con, "cursophp");


     $sql =  "UPDATE *FROM USUARIOS"; 
mysqli_query($con,$sql);
$nome = $_POST['nome'];


mysqli_close($con);




?> 




<form method="POST" action="salvaralteracao.php">
<br><br><br>


Nome:  <input type="text" name="nome" value="<?php echo $nome; ?>"<br><br>
E-mail: <input type="text" name="email"><br><br>
Idade: <input type="text" name="idade"><br><br><br>
---o:  <input type="radio" name="---o" value="M" checked>Masculino
<input type="radio" name="---o" value= 'F'>Feminino     <br> <br> <br> <br>


Estado civil:
 <select name="estadocivil">
 <option selected>Selecione</option>
 <option>Solteiro(a)</option>
 <option>Casado(a)</option>
 <option>Divorciado(a)</option>
 <option>Viuvo(a)</option>
 </select>


 <br><br><br> <br>


 <div class="Interesses">


 Interesses:<br><br>
       <INPUT type=checkbox name='humanas'> Ciencias Humanas 
  <INPUT type=checkbox name='exatas'> Ciencias Exatas 
  <INPUT type=checkbox name='biologicas'> Ciencias Biologicas 
          
</div>


<br><br>
Senha:<input type="password" name="senha"><br><br><br>


 <input type='submit'  onclick="return validar()">
 <input name="limpar" type="reset" id="limpar" value="Limpar Campos preenchidos!" />


</form>






</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vitor, desculpa a demora em te responder, bem vamos la a primeira coisa, isso é opcional, vc criar um arquivo de conexão e todas as páginas que necessitarem de conexão com o banco de dados vc da um include() chamando este arquivo, fica mais fácil caso depois necessite modificar os dados de acesso ao bd.

 

Arquivo: conexao.php

<?php

 $con = mysqli_connect("localhost", "root", "root") or die('Não foi possível conectar');
 $bd = mysqli_select_db($con, "cursophp");
 
?>

Arquivo: alterar.php

<html>
<head>
</head>
<body>
 
<?php
#AQUI EU INCLUO O ARQUIVO DE CONEXÃO
include("conexao.php"); 

#AQUI EU PEGO A ID QUE SERÁ ALTERADA NO BANCO
$id_alterada = $_GET['id'];
 
#AQUI EU BUSCO OS REGISTROS RELACIONADOS A ESTA ID PARA MOSTRAR NO FORM
$buscar_registro = mysql_query("SELECT * FROM USUARIOS where id = '$id_alterada'");

#AQUI EU CRIO O ARRAY PARA MOSTRAR OS ARQUIVOS
$ln = mysql_fetch_assoc($buscar_registro);
?>
 
 
<form method="POST" action="salvaralteracao.php">
<br><br><br>
 
Nome: <input type="text" name="nome" value="<?php echo $ln['nome']; ?>"<br><br>
E-mail: <input type="text" name="email" value="<?php echo $ln['email']; ?>"><br><br>
Idade: <input type="text" name="idade" value="<?php echo $ln['idade']; ?>"><br><br><br>
---o: <input type="radio" name="---o" value="M" <?php if($ln['sexo'] == 'M'){ echo "checked"; } ?>>Masculino
<input type="radio" name="---o" value= 'F' <?php if($ln['sexo'] == 'F'){ echo "checked"; } ?>>Feminino     <br> <br> <br> <br>
 
Estado civil:
#AQUI VC PRECISA ATRIBUIR VALUE PARA OS OPTIONS
 <select name="estadocivil">
 <option selected>Selecione</option>
 <option value='1' <?php if($ln['estadocivil'] == '1'){ echo "selected"; } ?>>Solteiro(a)</option>
 <option value='2' <?php if($ln['estadocivil'] == '2'){ echo "selected"; } ?>>Casado(a)</option>
 <option value='3' <?php if($ln['estadocivil'] == '3'){ echo "selected"; } ?>>Divorciado(a)</option>
 <option value='4' <?php if($ln['estadocivil'] == '4'){ echo "selected"; } ?>>Viuvo(a)</option>
 </select>
 
 <br><br><br> <br>
 
 <div class="Interesses">
 
 Interesses:<br><br>
  <INPUT type=checkbox <?php if($ln['humanas'] == 'humanas'){ echo "checked"; } ?> name='humanas'> Ciencias Humanas 
  <INPUT type=checkbox name='exatas' <?php if($ln['exatas'] == 'exatas'){ echo "checked"; } ?>> Ciencias Exatas 
  <INPUT type=checkbox name='biologicas' <?php if($ln['biologicas'] == 'biologicas'){ echo "checked"; } ?>> Ciencias Biologicas 
          
</div>
 
<br><br>
Senha:<input type="password" name="senha"><br><br><br>
 <!-- O CAMPO HIDDEN SERVE PARA PASSAR A ID QUE SERÁ EDITADA -->
 <input type='hidden' name='id' value='id'>
 <input type='submit'  onclick="return validar()">
 <input name="limpar" type="reset" id="limpar" value="Limpar Campos preenchidos!" />
 
</form>
 
 
 
</body>
</html>

Arquivo: salvaralteracao.php

<?php

#inclui o arquivo de conexão
include("conexao.php");

#pega os dados do form
$id = $_POST['id'];
$nome = $_POST['nome'];
$email = $_POST['email'];
$idade = $_POST['idade'];
$estadocivil = $_POST['estadocivil'];
$humanas = $_POST['humanas'];
$exatas = $_POST['exatas'];
$biologicaso = $_POST['biologicas'];
$senha = $_POST['senha'];
#O IDEAL PARA SENHAS É CRIPTOGRAFAR COM MD5 FICAR ASSIM
# $senha = md5($_POST['senha']);
#ISSO AUMENTA A SEGURANÇA DO SISTEMA, PORÉM SEMPRE NA HORA DO LOGIN
#VC VAI TER Q CRIPTOGRAFAR ELA COM MD5 PARA FAZER A VERIFICAÇÃO

$sql = mysql_query("UPDATE USUARIOS SET nome='$nome', email='$email', idade='$idade', estadocivil='$estadocivil', humanas='$humanas', exatas='$exatas', biologicas='$biologicas', senha='$senha' WHERE id = '$id'");

if($sql){ echo "Editado com sucesso!"; }else{ echo "Houve um erro na edição"; }


?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

meu amigo marcelo ainda não deu certo... mas to quase.. agora apos executar teu script mostra a seguinte msn no alterar.php:

 

 

(!) Warning: mysql_fetch_assoc () espera o parâmetro 1 ser recurso, objeto dado em C: \ wamp \ www \ alterar.php na linha 24 Chamada Stack # Tempo Memória Função Localização 1 0,0010 134520 {Main} () .. \ Alterar.php : 0 2 0,0160 145216 mysql_fetch_assoc () .. \ Alterar.php : 24

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então verifica se o nome da tabela e dos campos esta certinho, pq quando você me passou foi só o nome dos campos e o nome da tabela também precisa estar certo, caso contrario ele vai buscar os campos em uma tabela que não existe.

 

Se tiver algum erro vai ser bem aqui:

#AQUI EU BUSCO OS REGISTROS RELACIONADOS A ESTA ID PARA MOSTRAR NO FORM
$buscar_registro = mysql_query("SELECT * FROM USUARIOS where id = '$id_alterada'");

Veja se o nome tabela realmente é USUARIOS e se o nome do campo realmente é id olha também se era com maiuscula e eu escrevi com letras minusculas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá! desculpe a demora da resposta... bem, realmente estava errado como estava escrito o nome do banco... no meu banco aki ele foi escrito em letras minusculas.."usuarios" já alterei e continua apresentando o erro na linha 17

 

 

"Notice: Undefined index: id em C: \ wamp \ www \ alterar.php na linha 17"

 

 

no note++ essa linha é a

 

#AQUI EU PEGO A ID QUE SERÁ ALTERADA NO BANCO

$id_alterada = $_POST['id'];
não to entendendo onde esta o erro pra mim tá certo.
e tbem mostra erro na linha 24
Atenção: mysqli_fetch_assoc () espera exatamente um parâmetro, 2 apresentada no C: \ wamp \ www \ alterar.php na linha 24
corresponde a linha:
#AQUI EU CRIO O ARRAY PARA MOSTRAR OS ARQUIVOS
$ln = mysqli_fetch_assoc($con,$buscar_registro);
creio que com a ajuda de voces estou quase lá.. é minimo os detalhes para funcionar... por favor conto com ajuda de todos, obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá! O seu mysqli_fetch_assoc esta errado! Tente assim:

$ln = mysqli_fetch_array($buscar_registro,MYSQLI_ASSOC);

E ao erro do ID, é porque ele não encontrou. Tente dar um var_dump($_POST['id']), se for NULL porque ele não esta recebendo no método $_POST o ID.

 

Espero ter Ajudado :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite gustavo! meu amigo ainda não consegui... coloquei como solicitou o MYSQLI_ASSOC dentro da variavel $ln mas mostra a seguinte msn:

 

 

Atenção: mysqli_fetch_array () espera o parâmetro 1 para ser mysqli_result, null dada em C: \ wamp \ www \ alterar.php na linha 24

 

e referente ao atribuir um var_dump($_POST['id']) mostrou a seguinte msn:

 

 

Notice: Undefined index: id em C: \ wamp \ www \ alterar.php na linha 18 Call Stack # Tempo Memória Função Localização 1 0,0540 135112 {Principal} () .. \ Alterar.php : 0

nulo

 

 

sendo que fiz assim:

$id_alterada = $_GET['id'];

var_dump($_POST['id']);

 

 

 

por favor peço ajuda novamente somente para mostrar esses dados na tela.. creio que se mostrados no navegador depois colocar nos formulario seria mais facil

obr pela ajuda desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá! Mas você envia o ID por $_POST ou $_GET?

 

OBS: Lhe enviei uma mensagem. Olhe na sua Caixa de Entrada do Fórum.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok, consegui....

<?php
$querybanco = mysqli_query($con,"SELECT * FROM usuarios where id=26") or die(mysqli_error());
                   $mostra = mysqli_fetch_array($querybanco);
                   echo $mostra["NOME"];

?>

tava errando a variavel $mostra = ....

desde já agradeço a todos que ajudaram.. e até a proxima pois sei que viráa

muitoo obrigado e sei que posso contar com todos para ajudar.

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.