Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Alguns campos quando alterado estão sendo salvo em branco no Banco

Olá, estou tendo um problema na ALTERAÇÃO.

É um seguinte tenho um cadastro tudo preenchido, quando clico em altera ele abre normal para fazer a alteração com todos os dados puxado , só que tipo quando quero altera um determinado campo e clico em ALTERAR para salvar a alteração, ele retorna com todos os campo vazio e só 1 ou 2 ele traz o resto ele salva vazio.

DEI UM var_dump($query) E TEVE ESSAS INFORMAÇÕES.

C:\wamp64\www\Mercado\banco-usuario.php:86:string 'UPDATE  usuarios 
                SET nome = '',  email = '', endereco ='', cidade = '', estado = '', raca_id = 16, usuario = 'kuiky', senha = 'd41d8cd98f00b204e9800998ecf8427e'
                       WHERE id = '61'' (length=218)

CÓDIGO BANCO-USUARIO.PHP

function alteraUsuario($conexao, $id, $nome, $email, $endereco, $cidade, $estado, $raca_id, $usuario, $senha) {
    $senhaMd5 = md5($senha);
    $query = "UPDATE  usuarios 
                SET nome = '{$nome}',  email = '{$email}', endereco ='{$endereco}', cidade = '{$cidade}', estado = '{$estado}', raca_id = {$raca_id}, usuario = '{$usuario}', senha = '{$senhaMd5}'
                       WHERE id = '{$id}'";
                       var_dump($query);
                       die();

     return mysqli_query($conexao, $query);

ALTERA-USUARIO.PHP

<?php
$id = $_POST['id'];
$nome = $_POST["nome"];
$email = $_POST["email"]; 
$endereco = $_POST["endereco"];
$cidade = $_POST["cidade"]; 
$estado = $_POST["estado"];
$raca_id = $_POST["raca_id"];
$usuario = $_POST["usuario"];
$senha = $_POST["senha"];

if(alteraUsuario($conexao, $id, $nome, $email, $endereco, $cidade, $estado, $raca_id, $usuario, $senha)) { ?>
    <p class="text-success">Usuário Alterado com sucesso!</p>

<?php } else { $msg = mysqli_error($conexao);?>

    <p class="text-danger">Erro ao Alterar <?= $msg ?></p>

<?php } ?>

USUARIO-ALTERA-FORMULARIO.PHP

$id = $_GET['id'];
$usuario = buscaUsuarioId($conexao,$id);


$racas = listaRacas($conexao);

 ?>



<div class="container">
  <font size="30"><p align="center">Favor Altere seu Cadastro</p></font>
  <form action="altera-usuario.php" method="post">
    <input type="hidden" name="id" value="<?=$usuario['id']?>">

    <div class="form-row">

      <div class="form-group col-md-6">
        <label for="inputEmail4">Usuário</label>
        <input type="text" class="form-control" id="inputEmail4" placeholder="Usuário" name="usuario" value="<?= $usuario['usuario']?>">
      </div>

      <div class="form-group col-md-6">
        <label for="inputEmail4">Senha</label>
        <input type="Password" class="form-control" id="inputEmail4" value="<?= $usuario['senha']?>">
      </div>

      <div class="form-group col-md-6">
        <label for="inputEmail4">Nome Completo</label>
        <input type="text" class="form-control" id="inputEmail4" placeholder="Nome" value="<?= $usuario['nome']?>">
      </div>
      <div class="form-group col-md-6">
        <label for="inputPassword4">E-mail</label>
        <input type="Email" class="form-control" id="inputPassword4" placeholder="E-mail" value="<?= $usuario['email']?>">
      </div>
    </div>
    <div class="form-group">
      <label for="inputAddress">Endereço</label>
      <input type="text" class="form-control" id="inputAddress" placeholder=" Bairro Rua 1223" value="<?= $usuario['endereco']?>">
    </div>
    <div class="form-row">
      <div class="form-group col-md-6">
        <label for="inputCity">Cidade</label>
        <input type="text" class="form-control" id="inputCity" placeholder="Cidade" value="<?= $usuario['cidade']?>">
      </div>
      <div class="form-group col-md-6">
        <label for="inputCity">Estado</label>
        <input type="text" class="form-control" id="inputCity" placeholder="Estado" value="<?= $usuario['estado']?>">
      </div>
      <div class="form-group col-md-4">
        <label for="inputState">Escolha Sua Raça Guerreira</label>
        <select id="inputState" class="form-control" name="raca_id">
          <?php foreach ($racas as $raca) { 

            $essaEhARaca = $usuario['raca_id'] == $raca['id'];                    
            $selecao = $essaEhARaca ? " selected='selected' " : "";

            ?>
            <option value="<?=$raca['id']?>"<?=$selecao?>/> 
              <?=$raca['nome']?></option>
            <?php } ?>
          </select>
    </div>
    </div>
    <button type="submit" class="btn btn-warning">Salvar</button>
  </form>
</div>

O QUE SERÁ QUE É DE ERRADO ? OBRIGADO!

2 respostas

Luiz, boa tarde!

Quando você preenche os campos para fazer a alteração, você está preenchendo todos as entradas ou apenas as que você quer alterar? Pois se estiver alterando apenas as específicas que você quer alterar o código pega os dados em branco e preenche no banco de dados pois você não inseriu nenhum tipo de texto neles.

Bons estudos, qualquer dúvida responda aqui embaixo que procuramos entender melhor o problema.

solução!

BOA TARDE!

Então vou falar o passo a passo ok.

Passo 1 Estou com meu cadastro tudo preenchido. Passo 2 clico no botão "ALTERAR CADASTRO". Passo 3 Abre outro formulário com todos os campos CARREGADO(preenchido). Passo 4 Escolho um campo ex(campo nome: Luiz) e mudo para ex(campo nome: Henrique) o resto esta tudo preenchido normal e clico no botão "ALTERAR". A mensagem vem certinho "usuário alterado com sucesso". Só que quando volta no meu cadastro vem 3 campos preenchido e o resto tudo vazio até o nome que ALTEREI, dei um var_dump($query) observa-se:

C:\wamp64\www\Mercado\banco-usuario.php:86:string 'UPDATE  usuarios 
                SET nome = '',  email = '', endereco ='', cidade = '', estado = '', raca_id = 10, usuario = 'teste3', senha = 'd41d8cd98f00b204e9800998ecf8427e'
                       WHERE id = '62'' (length=219)