Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

bernardorodel

UPDATE não salva alteração no banco de dados

Recommended Posts

Fala pessoal, não consegui entender o porquê de não salvar e recorri ao fórum.

 

To fazendo apenas um editar.php.

 

editar.php:

<?php
require 'conexao.php';

$id_cliente = (isset($_GET['id'])) ? $_GET['id'] : '';

if (!empty($id_cliente) && is_numeric($id_cliente)):

	$conexao = conexao::getInstance();
	$sql = 'SELECT nome, rg, sexo, telefone, cidade, endereco FROM visitantes WHERE id = :id';
	$stm = $conexao->prepare($sql);
	$stm->bindValue(':id', $id_cliente);
	$stm->execute();
	$cliente = $stm->fetch(PDO::FETCH_OBJ);

	if(!empty($cliente)):

	endif;

endif;

?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
	<title>Controle de Visitantes</title>
	<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
	<link rel="stylesheet" type="text/css" href="css/custom.css">
	<style type="text/css">
	<!--
body {
	background-image: url("./img/bg.jpg");
	background-repeat: no-repeat;
	background-attachment: fixed;
    background-position: center;
    background-size: cover;
}
<!---->
</style>
</head>
<body>
	<div class='container'>
		<fieldset>
			<legend><h1>Edição de Visitante</h1></legend>
			<?php if(empty($cliente)):?>
				<h3 class="text-center text-danger">Visitante não encontrado!</h3>
			<?php else: ?>
				<form action="action_cliente.php" method="post" id='form-contato' enctype='multipart/form-data'>
					<div class="row">

				    <div class="form-group">
				      <label for="nome">Nome</label>
				      <input type="text" class="form-control" id="nome" name="nome" value="<?=$cliente->nome?>" placeholder="Informe o Nome do Visitante">
				      <span class='msg-erro msg-nome'></span>
				    </div>

				    <div class="form-group">
				      <label for="rg">RG</label>
				      <input type="rg" class="form-control" id="rg" name="rg" maxlength="11" value="<?=$cliente->rg?>" placeholder="Informe o RG do Visitante">
				      <span class='msg-erro msg-rg'></span>
				    </div>
					  <div class="form-group">
				      <label for="sexo">Gênero</label>
				      <select class="form-control" name="sexo" id="sexo">
					    <option value="<?=$cliente->sexo?>"><?=$cliente->sexo?></option>
					    <option value="masculino">Masculino</option>
					    <option value="feminino">Feminino</option>
					  </select>
					  <div class="form-group">
					  <label for="telefone">Telefone</label>
					  <input type="telefone" class="form-control" id="telefone" name="telefone" maxlength="11" value="<?=$cliente->telefone?>" placeholder="(00)000000000">
					  <span class='msg-erro msg-telefone'></span>
					  </div>
					  <div class="form-group">
				      <label for="estado">Estado</label>
				      <select class="form-control" name="estado" id="estado">
					    <option value="<?=$cliente->estado?>"></option>
					    <option value="PR">PR</option>
					    <option value="RS">RS</option>
						<option value="SC">SC</option>
					  </select>
					  <span class='msg-erro msg-status'></span>
				    </div>
				    <div class="form-group">
				      <label for="cidade">Cidade</label>
				      <input type="cidade" class="form-control" id="cidade" maxlength="30" name="cidade" value="<?=$cliente->cidade?>" placeholder="Informe a Cidade do Visitante">
				      <span class='msg-erro msg-cidade'></span>
				    </div>
				    <div class="form-group">
				      <label for="endereco">Endereço</label>
				      <input type="endereco" class="form-control" id="endereco" maxlength="30" name="endereco" value="<?=$cliente->endereco?>" placeholder="Informe o Endereço do Visitante">
				      <span class='msg-erro msg-endereco'></span>
				    </div>

				    <input type="hidden" name="acao" value="editar">
				    <input type="hidden" name="id" value="<?=$cliente->id?>">
				    <button type="submit" class="btn btn-primary" id='botao'> 
				      Salvar
				    </button>
				    <a href='listarvisitantes.php' class="btn btn-danger">Cancelar</a>
				</form>
			<?php endif; ?>
		</fieldset>

	</div>
</body>
</html>

 

action_cliente.php:

 

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
	<title>Sistema de Cadastro</title>
	<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
	<link rel="stylesheet" type="text/css" href="css/custom.css">
	
</head>
<body>
	<div class='container box-mensagem-crud'>
		<?php 
		require 'conexao.php';


		$conexao = conexao::getInstance();

		$acao  = (isset($_POST['acao'])) ? $_POST['acao'] : '';
		$id    = (isset($_POST['id'])) ? $_POST['id'] : '';
		$nome  = (isset($_POST['nome'])) ? $_POST['nome'] : '';
		$rg   = (isset($_POST['rg'])) ? str_replace(array('.','-'), '', $_POST['rg']): '';
		$sexo = (isset($_POST['sexo'])) ? $_POST['sexo'] : '';
		$telefone		  = (isset($_POST['telefone'])) ? $_POST['telefone'] : '';
		$estado  = (isset($_POST['estado'])) ? $_POST['estado'] : '';
		$cidade  		  = (isset($_POST['cidade'])) ? $_POST['cidade'] : '';
		$endereco   		  = (isset($_POST['endereco'])) ? $_POST['endereco'] : '';


		$mensagem = '';
		if ($acao == 'editar' && $id == ''):
		    $mensagem .= '<li>ID do registros desconhecido.</li>';
	    endif;


			$sql = 'UPDATE visitantes SET nome=:nome, rg=:rg, sexo=:sexo, telefone=:telefone, estado=:estado, cidade=:cidade, endereco=:endereco WHERE id =:id';

			$stm = $conexao->prepare($sql);
			$stm->bindValue(':nome', $nome);
			$stm->bindValue(':rg', $rg);
			$stm->bindValue(':sexo', $sexo);
			$stm->bindValue(':telefone', $telefone);
			$stm->bindValue(':estado', $estado);
			$stm->bindValue(':cidade', $cidade);
			$stm->bindValue(':endereco', $endereco);
			$stm->bindValue(':id', $id);
			$retorno = $stm->execute();

			if ($retorno):
				echo "<div class='alert alert-success' role='alert'>Registro editado com sucesso, aguarde você está sendo redirecionado ...</div> ";
		    else:
		    	echo "<div class='alert alert-danger' role='alert'>Erro ao editar registro!</div> ";
			endif;

			echo "<meta http-equiv=refresh content='3;URL=listarvisitantes.php'>";
	
		?>

	</div>
</body>
</html>

O erro é que não tem erro. Mostra que registrou porém não salva a alteração e eu não sei qual é o causador disso.

 

xdxd.thumb.jpg.5323cf2dd5b0f1a7d4a16cb82134d568.jpg

 

Obrigado desde já!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente isso: na sql de "select" inclua a coluna id

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, ativo. Nela tem cadastrado vários itens. No campo ativo eu coloco a letra "S" para informar que este item está ativo no sistema. Por exemplo: 1, casa, S 2, mesa, S 3, cama, S 4, moto S 5, rádio O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "produtos" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, mesa, moto 2, mesa, casa, cama 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela produtos da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "mesa". Preciso fazer com que o php me liste todos os registros da tabela "produtos" que contenham a palavra "mesa". Até aqui tudo bem eu consigo listar. Estou fazendo assim: <?php $item = "mesa" $sql = mysqli_query($conn, "SELECT * FROM produtos WHERE item1 LIKE '$item' OR item2 LIKE '$item' OR item3 LIKE '$item' LIMIT 10"); while($aux = mysqli_fetch_assoc($sql)) { $id = $aux["id"]; $item1 = $aux["item1"]; $item2 = $aux["item2"]; $item3 = $aux["item3"]; echo $id . " - " . $item1 . ", " . $item2 . ", " $item3 . "<br>"; } ?> O problema é que está listando todos os registros que contém o item mesa. Eu preciso que o php verifique os demais item e me liste somente os registro em que todos os registros estejam ativos no sistema. No exemplo acima ele não deveria listar o registro 3. pois nesse registro contém o item "radio" e este item não está ativo no sistema. Ou seja, o registro "radio" na tabela itens não possui um "S" na coluna "ativo". Alguém sabe como resolver isso?
    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, plural, ativo. Nela tem cadastrado vários itens e seu respectivo plural. No campo ativo eu coloco a letra "S" para informar que esta palavra está ativa no sistema. Por exemplo: 1, casa, casas, S 2, mesa, mesas, S 3, cama, camas, S 4, moto, motos, S 5, rádio, rádios O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "variações" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, camas, moto 2, mesas, casas, radio 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela variações da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "variações" que contenham a palavra "casa". Porém se tiver algum registro com a palavra "casas" também tem que ser listado. Neste caso ele irá encontrar dois registros. Agora eu preciso que o php verifique os demais itens e faça a listagem apenas dos item que estão ativos (que contenham um "S" no campo ativo. Neste caso ele irá encontrar apenas um registro, pois o segundo registro contém a palavra "rádio". E "rádio" não está ativo na tabela itens. Como faço isso?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.