Como alterar o Banco de Dados com PHP
28/07/2014
0
o arquivo de adicionar dados no banco de dados está funcionando perfeitamente! ele insere os dados sem nenhum problema! mas o de modificar os dados inseridos não altera... não sei porque! segue os dados!
conectar.php
<?php $host = "localhost"; $db = "aula"; $user = "root"; $pass = ""; $conecta = mysql_connect("$host", "$user", "$pass")or print (mysql_error()); mysql_select_db($db); ?>
listar.php
<?php include "conectar.php"; // Chama a conexao com o banco de dados $buscar = mysql_query("SELECT * FROM dados")or die(mysql_error()); if(mysql_num_rows($buscar) > 0){ while($ver = mysql_fetch_array($buscar)) { echo '<a href="alterar.php?id='.$ver[0].'">'.$ver[1].'</a>'; } }else{ echo 'Sem dados cadastrais'; } ?>
cadastro.php
<?php include "conectar.php"; // Chama a conexao com o banco de dados if($_SERVER['REQUEST_METHOD']=='POST'){ $nome = isset($_POST['nome']) ? $_POST['nome'] : ''; $idade = isset($_POST['idade']) ? $_POST['idade'] : false; $sexo = isset($_POST['sexo']) ? $_POST['sexo'] : ''; $inserir = mysql_query("INSERT INTO dados (nome,idade,sexo) VALUES('$nome','$idade','$sexo')")or die(mysql_error()); ($inserir) ? print 'Dados inseridos com sucesso' : die('Erro ao inserir dados'); } ?> <form name="teste" id="2" action="" method="POST"> Nome: <input type="text" name="nome" /> <br /> Idade: <input type="text" name="idade" />(Max: 3 caracteres) <br /> sexo: Masculino: <input type="radio" name="sexo" id="sexo" value="M" /> Feminino: <input type="radio" name="sexo" id="sexo" value="F" /> <br /> <input type="submit" name="ok" value="cadastrar" /> </form>
alterar.php
<?php include "conectar.php"; // Chama a conexao com o banco de dados if($_SERVER['REQUEST_METHOD']=='GET'){ isset($_GET['id']) ? $busca=mysql_query("SELECT * FROM dados WHERE id='".$_GET['id']."'") : die(mysql_error()); $dados = mysql_fetch_array($busca); }elseif($_SERVER['REQUEST_METHOD']=='POST'){ $nome = isset($_POST['nome']) ? $_POST['nome'] : ''; $idade = isset($_POST['idade']) ? $_POST['idade'] : false; $sexo = isset($_POST['sexo']) ? $_POST['sexo'] : ''; $atualizar = mysql_query("UPDATE dados SET nome='$nome',idade='$idade',sexo='$sexo' WHERE id='$id'")or die(mysql_error()); ($atualizar) ? print 'Dados alterados com sucesso' : die('Falha ao alterar dados'); } ?> <form name="teste2" id="teste2" action="" method="POST"> <input type="hidden" name="idreg" id="idreg" value="<?php echo $dados['id']; ?>"> Nome: <input type="text" name="nome" value="<?php echo $dados['nome']; ?>" /> <br /> Idade: <input type="text" name="idade" value="<?php echo $dados['idade']; ?>" />(Max: 3 caracteres) <br /> sexo: <input type="radio" name="sexo" id="sexo" value="M" /> Masculino <input type="radio" name="sexo" id="sexo" value="F" />Feminino <br /> <input type="submit" name="ok" value="Alterar" /> </form>
Cleyton Caetano
Posts
28/07/2014
Eduardo Martins
$nome = isset($_POST['nome']) ? $_POST['nome'] : ''; $idade = isset($_POST['idade']) ? $_POST['idade'] : false; $sexo = isset($_POST['sexo']) ? $_POST['sexo'] : ''; $atualizar = mysql_query("UPDATE dados SET nome='$nome',idade='$idade',sexo='$sexo' WHERE id='$id'")or die(mysql_error());
E o "id" esta aonde ? WHERE id='$id'" ?
Att.
28/07/2014
Cleyton Caetano
$nome = isset($_POST['nome']) ? $_POST['nome'] : ''; $idade = isset($_POST['idade']) ? $_POST['idade'] : false; $sexo = isset($_POST['sexo']) ? $_POST['sexo'] : ''; $atualizar = mysql_query("UPDATE dados SET nome='$nome',idade='$idade',sexo='$sexo' WHERE id='$id'")or die(mysql_error());
E o "id" esta aonde ? WHERE id='$id'" ?
Att.
Acho que ele é chamado com este código um pouco mais acima!
isset($_GET['id']) ? $busca=mysql_query("SELECT * FROM dados WHERE id='".$_GET['id']."'") : die(mysql_error());
mais se esse é o erro como faço para corrigir?
28/07/2014
Eduardo Martins
$id = isset($_POST['idreg']) ? $_POST['idreg'] : 0; $nome = isset($_POST['nome']) ? $_POST['nome'] : ''; $idade = isset($_POST['idade']) ? $_POST['idade'] : false; $sexo = isset($_POST['sexo']) ? $_POST['sexo'] : '';
ou assim
$id = isset($_POST['id']) ? $_POST['id'] : 0; $nome = isset($_POST['nome']) ? $_POST['nome'] : ''; $idade = isset($_POST['idade']) ? $_POST['idade'] : false; $sexo = isset($_POST['sexo']) ? $_POST['sexo'] : '';
28/07/2014
Cleyton Caetano
$id = isset($_POST['idreg']) ? $_POST['idreg'] : 0; $nome = isset($_POST['nome']) ? $_POST['nome'] : ''; $idade = isset($_POST['idade']) ? $_POST['idade'] : false; $sexo = isset($_POST['sexo']) ? $_POST['sexo'] : '';
ou assim
$id = isset($_POST['id']) ? $_POST['id'] : 0; $nome = isset($_POST['nome']) ? $_POST['nome'] : ''; $idade = isset($_POST['idade']) ? $_POST['idade'] : false; $sexo = isset($_POST['sexo']) ? $_POST['sexo'] : '';
Aparece esse erro dentro dos input:
a mensagem: Dados alterados com sucesso.
Nome:
<br /><b>Notice</b>: Undefined variable: dados in <b>C:\Program Files\EasyPHP-DevServer-14.1VC11\data\localweb\aula\alterar.php</b> on line <b>23</b><br />
Idade:
>Notice</b>: Undefined variable: dados in <b>C:\Program Files\EasyPHP-DevServer-14.1VC11\data\localweb\aula\alterar.php</b> on line <b>25</b><br />
e os dados não são alterados!
28/07/2014
Eduardo Martins
http://localhost ???
28/07/2014
Cleyton Caetano
http://localhost ???
Juro que não entendi kkk
mais não coloco http://localhost em lugar algum.. ou mesmo nenhum link!
só pra notar! já consegui mudar os dados do banco! agora o problema é só essa mensagem que aparece logo após fazer a alteração!
nome
<br /><b>Notice</b>: Undefined variable: dados in <b>C:\Program Files\EasyPHP-DevServer-14.1VC11\data\localweb\aula\alterar.php</b> on line <b>23</b><br />
idade
<br /><b>Notice</b>: Undefined variable: dados in <b>C:\Program Files\EasyPHP-DevServer-14.1VC11\data\localweb\aula\alterar.php</b> on line <b>25</b><br />
28/07/2014
Eduardo Martins
assim para vc acessar seu site ai, vc digita algo mais ou menos assim:
http://localhost/seuprojetoai/alterar.php?id=10
Att.
28/07/2014
Cleyton Caetano
assim para vc acessar seu site ai, vc digita algo mais ou menos assim:
http://localhost/seuprojetoai/alterar.php?id=10
Att.
sim, sim kkk
http://localhost/aula/alterar.php?id=1
é este! lembrando que já estou conseguindo alterar o banco de dados!
28/07/2014
Eduardo Martins
Quando vc faz uma solicitação via GET, é pela URL, então no seu código php, ele pega $_GET['id'], este ID é o id passado na URL: "?id=1"... Entendeu?
Sobre os notices que estão ocorrendo, ele diz que o dados não existe. deve ser algo aqui...
isset($_GET['id']) ? $busca=mysql_query("SELECT * FROM dados WHERE id='".$_GET['id']."'") : die(mysql_error()); // verifica se tem retorno aqui $dados = mysql_fetch_array($busca);
Não esta vindo nada no dados, ou se estiver vindo não esta pegando certo em:
<input type="text" name="nome" value="<?php echo $dados['nome']; ?>" />
28/07/2014
Cleyton Caetano
Quando vc faz uma solicitação via GET, é pela URL, então no seu código php, ele pega $_GET['id'], este ID é o id passado na URL: "?id=1"... Entendeu?
Sobre os notices que estão ocorrendo, ele diz que o dados não existe. deve ser algo aqui...
isset($_GET['id']) ? $busca=mysql_query("SELECT * FROM dados WHERE id='".$_GET['id']."'") : die(mysql_error()); // verifica se tem retorno aqui $dados = mysql_fetch_array($busca);
Não esta vindo nada no dados, ou se estiver vindo não esta pegando certo em:
<input type="text" name="nome" value="<?php echo $dados['nome']; ?>" />
Cara eu já mudei tudo mas ainda não deu certo, sempre exibe o erro dentro do input!
28/07/2014
Eduardo Martins
if($_SERVER['REQUEST_METHOD']=='GET'){ isset($_GET['id']) ? $busca=mysql_query("SELECT * FROM dados WHERE id='".$_GET['id']."'") : die(mysql_error()); $dados = mysql_fetch_array($busca); // coloca isso aqui e me diga o que retorna echo '<pre>'; echo print_r( $dados ); echo '</pre>'; }elseif($_SERVER['REQUEST_METHOD']=='POST'){
28/07/2014
Cleyton Caetano
if($_SERVER['REQUEST_METHOD']=='GET'){ isset($_GET['id']) ? $busca=mysql_query("SELECT * FROM dados WHERE id='".$_GET['id']."'") : die(mysql_error()); $dados = mysql_fetch_array($busca); // coloca isso aqui e me diga o que retorna echo '<pre>'; echo print_r( $dados ); echo '</pre>'; }elseif($_SERVER['REQUEST_METHOD']=='POST'){
Certo! Amanha eu vou fazer o teste e te dou um retorno! Ate amanhã!
29/07/2014
Cleyton Caetano
if($_SERVER['REQUEST_METHOD']=='GET'){ isset($_GET['id']) ? $busca=mysql_query("SELECT * FROM dados WHERE id='".$_GET['id']."'") : die(mysql_error()); $dados = mysql_fetch_array($busca); // coloca isso aqui e me diga o que retorna echo '<pre>'; echo print_r( $dados ); echo '</pre>'; }elseif($_SERVER['REQUEST_METHOD']=='POST'){
Na página ele passou a imprimir esses códigos!
Array ( [0] => 1 [id] => 1 [1] => Cleyton Caetano [nome] => Cleyton Caetano [2] => 19 [idade] => 19 [3] => M [sexo] => M ) 1
e quando coloco para alterar os dados fica na mesma! a mensagem aparece!
30/07/2014
Eduardo Martins
Esta com o problema ainda, ou conseguiu resolver?
Abrass
30/07/2014
Cleyton Caetano
Esta com o problema ainda, ou conseguiu resolver?
Abrass
Amigão o código de teste está dando erro! mais resolvi tentar com outro! ou seja colocar em prática! e o erro não apareceu! agora é só alegria aqui!
Muito obrigada pelas dicas! vlw mesmo!
Clique aqui para fazer login e interagir na Comunidade :)