Ir para conteúdo
Fórum Script Brasil
  • 0

[UPDATE]atualizando dados


GuerreiroDaLuz

Pergunta

Pessoal, to estudando UPDATE, mas agora entrei em parafuso, eu quero exibir os dados de uma tabela, e através de formulário editá-las, o negócio é que baguncei tanto que entrei em parafuso, podem me dar uma força?

CODIGO PHP DA VERIFICAÇÃO:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Pegando os Dados e Exibindo</title>
</head>
<body>

  <p>
    <?php
$conexao = mysql_connect("localhost","root","123") or die ("Não foi possível conectar ao Banco de dados.");

$bd = mysql_select_db("bd_teste", $conexao) or die ("Não foi possível selecionar o Banco de dados.");

$sql = "SELECT id, nome, email, senha FROM professor ORDER BY id ASC";

$resultado = mysql_query($sql, $conexao) or die ("Não foi possível executar a consulta");
echo "<TABLE BORDER=1>
    <TR><TH>ID </TH> <TH>NOME</TH> <TH>EMAIL</TH> <TH>SENHA</TH>";
while ($linha = mysql_fetch_array($resultado)) {
$id = $linha["id"];
$nome = $linha["nome"];
$email = $linha["email"];
$senha = $linha["senha"];
echo "<TR><TD>$id</TD>
<TD>$nome</TD>
<TD>$email</TD>
<TD>$senha</TD></TR>";
}
echo "</TABLE>";
mysql_free_result($resultado);
mysql_close($conexao);
?>
</p>
  <form id="edt_prof" name="edt_prof" method="post" action="env_edt_prof.php">
    <label>Selecione o ID:<br />
    <input type="text" name="id" size="3" maxlength="4"/>
    <br />
    </label>
    <label>Novo Nome:<br />
    <input type="text" name="nome" />
    </label>
    <p>
      <label>Novo E-mail:<br />
      <input type="text" name="email" />
      </label>
    </p>
    <p>
      <label>Nova Senha:<br />
      <input type="password" name="senha" />
      </label>
    </p>
    <p>
      <label>
      <input type="submit" name="editar" value="Editar" />
      </label>
    </p>
    <p>&nbsp;</p>
  </form>
  <p>&nbsp;    </p>
</body>
</html>
Ai entra em ação o env_edt_prof.php:
<?php

$conexao = mysql_connect("localhost","root","123") or die ("Não foi possível conectar ao Banco de dados.");


$bd = mysql_select_db("bd_teste", $conexao) or die ("Não foi possível selecionar o Banco de dados.");

$id = ($_POST['id']);
$nome = ($_POST['nome']);
$email = ($_POST['email']);
$senha = ($_POST['senha']);

if($_POST['submit'] == "editar") {

$edita = "UPDATE `professor` SET id= '$id', nome = '$nome', email = '$email', senha = '$senha' WHERE `id` = '$id'";
$atualiza = mysql_query( $sql ) or print( mysql_error() );
}

$resultado = mysql_query($edita, $conexao) or die ("Não foi possível executar a consulta");

?>

Sei que o problema esta na "lógica" e "semantica" da situação, mas já entrei em parafuso e até agora nada!

obrigado a todos os amigos por mais uma força! :)

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Dica: É muito interessante postar o erro retornado pelo PHP, assim fica mais fácil avaliar o que está acontecendo no seu código.

Acredito que o erro está na sintaxe da sua instrução SQL.

O nome da tabela está com aspas 'professor' e campo 'id'. Retire essas aspas.

E provavemente o campo id é do tipo númerico, correto? então ficaria id = $id

$edita = "UPDATE `professor` SET id= '$id', nome = '$nome', email = '$email', senha = '$senha' WHERE `id` = '$id'";


$edita = "UPDATE professor 
          SET   id= '$id', 
                nome = '$nome', 
                email = '$email', 
                senha = '$senha' 
          WHERE id = $id";

Editado por Romero Dias
Link para o comentário
Compartilhar em outros sites

  • 0
Dica: É muito interessante postar o erro retornado pelo PHP, assim fica mais fácil avaliar o que está acontecendo no seu código.

Acredito que o erro está na sintaxe da sua instrução SQL.

O nome da tabela está com aspas 'professor' e campo 'id'. Retire essas aspas.

E provavemente o campo id é do tipo númerico, correto? então ficaria id = $id

$edita = "UPDATE `professor` SET id= '$id', nome = '$nome', email = '$email', senha = '$senha' WHERE `id` = '$id'";


$edita = "UPDATE professor 
          SET   id= '$id', 
                nome = '$nome', 
                email = '$email', 
                senha = '$senha' 
          WHERE id = $id";

Ok, deixei o "ID" sem o aspas, porque ele realmente é um tipo numérico inteiro!

a questão é que continua dando o mesmo erro!

UPDATE:

não atualiza nada e também não retorna erro!

alguém sabe o que pode ser?

Editado por GuerreiroDaLuz
Link para o comentário
Compartilhar em outros sites

  • 0

Imprima na tela sua query para verificar se todas as variáveis estão sendo preenchidas.

$edita = "UPDATE professor SET id= '$id', nome = '$nome', email = '$email', senha = '$senha' WHERE id = $id";
echo $edita;
exit;

Copie o que o PHP escreveu na tela e cole no seu MySQL e execute a query para ver o que possa estar ocorrendo,

Editado por Romero Dias
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...