Fórum Como alterar o Banco de Dados com PHP #487063
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
Curtir tópico
+ 0Posts
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.
Gostei + 0
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?
Gostei + 0
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'] : '';
Gostei + 0
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!
Gostei + 0
28/07/2014
Eduardo Martins
http://localhost ???
Gostei + 0
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 />
Gostei + 0
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.
Gostei + 0
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!
Gostei + 0
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']; ?>" />
Gostei + 0
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!
Gostei + 0
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'){
Gostei + 0
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ã!
Gostei + 0
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
)
1e quando coloco para alterar os dados fica na mesma! a mensagem aparece!
Gostei + 0
30/07/2014
Eduardo Martins
Esta com o problema ainda, ou conseguiu resolver?
Abrass
Gostei + 0
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!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)