Olá. Estou tendo problemas quando tento executar um UPDATE no meu sistema em php. Uso o MySQL.
Tenho o código do arquivo editar:
<?php
require_once 'init.php';// resgata os valores do formulario
$nome = isset($_POST['nome'])? $_POST['nome']:null;
$nascimento = isset($_POST['nascimento'])? $_POST['nascimento']:null;
$email = isset($_POST['email'])? $_POST['email']:null;
$senha = isset($_POST['senha'])? $_POST['senha']:null;
$seg_senha = password_hash($senha, PASSWORD_DEFAULT);// Validação para evitar dados vaziosif(empty($nome)|| empty($nascimento)|| empty($email)|| empty($senha)){
echo 'Volte e preencha todos os campos.';exit;}// Atualiza o banco
$pdo = db_connect();
$sql ="UPDATE usuarios SET nome = :nome, nasc = :nasc, email = :email, senha = :senha WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':nome', $nome);
$stmt->bindParam(':nasc', $nascimento);
$stmt->bindParam(':email', $email);
$stmt->bindParam(':senha', $seg_senha);
$stmt->bindParam(':id', $id);if($stmt->execute()){
header('Location: ../index1.php');}else{
echo 'Erro ao atualizar usuario.';
print_r($stmt->errorInfo());}
Agora o arquivo com formulario para edição de usuario:
<?php
require_once 'core/init.php';// Pega o id da URL
$id = isset($_GET['id'])?(int)$_GET['id']:null;// Valida o idif(empty($id)){
echo 'ID para alteração não definido';exit;}// Busca os dados do usuario a ser editado
$pdo = db_connect();
$sql ="SELECT nome, nasc, email, senha FROM usuarios WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->execute();
$user = $stmt->fetch(PDO::FETCH_ASSOC);// Se o método fetch() não retornar um array, significa que o ID não corresponde a um usuário válidoif(!is_array($user)){
echo 'Nenhum usuario encontrado.';exit;}?><!DOCTYPE html><html><head><metacharset="utf-8"><title>Edição de usuario</title><script>
src="http://code.jquery.com/jquery-1.12.4.min.js"
integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ="
crossorigin="anonymous"></script><!-- Latest compiled and minified CSS --><linkrel="stylesheet"href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"crossorigin="anonymous"><!-- Optional theme --><linkrel="stylesheet"href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css"integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp"crossorigin="anonymous"><!-- Latest compiled and minified JavaScript --><scriptsrc="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"crossorigin="anonymous"></script></head><body><!-- ==================== NAVBAR INICIO - BOOTSTRAP ==================== --><navclass="navbar navbar-inverse"><divid="inicio"class="container-fluid"><!-- Brand and toggle get grouped for better mobile display --><divclass="navbar-header"><buttontype="button"class="navbar-toggle collapsed"data-toggle="collapse"data-target="#bs-example-navbar-collapse-1"aria-expanded="false"><spanclass="sr-only">Toggle navigation</span><spanclass="icon-bar"></span><spanclass="icon-bar"></span><spanclass="icon-bar"></span></button><aclass="navbar-brand"href="#inicio"><b>Hoo</b></a></div><!-- Collect the nav links, forms, and other content for toggling --><divclass="collapse navbar-collapse"id="bs-example-navbar-collapse-1"><ulclass="nav navbar-nav"><li><ahref="index1.php"><u>Home</u></a></li></ul><ulclass="nav navbar-nav navbar-right"><liclass="dropdown"><ahref="#"class="dropdown-toggle"data-toggle="dropdown"role="button"aria-haspopup="true"aria-expanded="false">Perfil <spanclass="caret"></span></a><ulclass="dropdown-menu"><lirole="separator"class="divider"></li><li><ahref="">Sair</a></li></ul></li></ul></div><!-- /.navbar-collapse --></div><!-- /.container-fluid --></nav><!-- ==================== NAVBAR FIM - BOOTSTRAP ==================== --><!-- ==================== TABLE INICIO - BOOTSTRAP ==================== --><divclass="panel panel-success "style="width:60%; margin:0auto; padding:20px"><divclass="panel-heading"><center><b>EDITAR USUARIO</b></center></div><divclass="panel-body"><formmethod="POST"action="core/editar.php"><divclass="form-group"><inputtype="hidden"value=""name="id"class="form-control"id="exampleInputId1"></a></div><divclass="form-group"><labelfor="nome">Nome</label>
<input type="text" value="<?php echo $user['nome']?>" name="nome" class="form-control" id="nome" placeholder="Nome"></a></div><divclass="form-group"><spanclass="label label-default">Data de nascimento</span>
<input type="date" value="<?php echo $user['nasc']?>" data-date="" data-date-format="DD MMMM YYYY" class="form-control" for="nasc" name="nascimento">
</div><divclass="form-group"><labelfor="email">E-MAIL</label>
<input type="email" value="<?php echo $user['email']?>" name="email" class="form-control" id="email" placeholder="E-MAIL">
</div><divclass="form-group"><labelfor="senha">Senha</label>
<input type="password" value="<?php echo $user['senha']?>" name="senha" class="form-control" id="senha" placeholder="Senha">
</div>
<input type="hidden" name="id" value="<?php echo $id ?>">
<buttontype="submit"class="btn btn-default">Finalizar edição</button></form></div></div><!-- ==================== TABLE INICIO - BOOTSTRAP ==================== --></body></html>
Quando altero os campos e clico no botão ele não retorna erro algum, somente retorna para a página index1.php, como mandei no header. Mas no banco o campo "alterado" continua do mesmo jeito, como se não tivesse feito alteração algumA.
Pergunta
Gabrielvt14
Olá. Estou tendo problemas quando tento executar um UPDATE no meu sistema em php. Uso o MySQL.
Tenho o código do arquivo editar:
Agora o arquivo com formulario para edição de usuario:
Quando altero os campos e clico no botão ele não retorna erro algum, somente retorna para a página index1.php, como mandei no header. Mas no banco o campo "alterado" continua do mesmo jeito, como se não tivesse feito alteração algumA.
Alguém poderia me auxiliar?
Grato!
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.