Ir para conteúdo

POWERED BY:

Arquivado

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

bartts

Ajuda para atualizar via formulário

Recommended Posts

Boa tarde pessoal,

 

Estou começando a estudar PHP e gostei muito da área. Estou testando fazer um cadastro de livros, com consultas e alterações e tudo está funcionando perfeitamente, porém quando eu clico no botão "EDITAR" na minha página de listagem e jogo para a pagina de edição, ele está jogando sempre o último código cadastrado. Já procurei no google e até agora não

consegui achar solução e tudo o que eu achava só me deixava mais confuso. Por favor me deem uma luz nisso.

 

con_livros.php (página de consulta)

<html>
<head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1" />
   <title>Consultando Livros...</title>
   <link rel="stylesheet" type="text/css" href="/projeto/css/bootstrap.min.css" />
   <link rel="stylesheet" type="text/css" href="/projeto/css/bootstrap-theme.min.css" />
   <link rel="stylesheet" type="text/css" href="/projeto/css/menu.css" />
		
<script src="/projeto/js/jquery.min.js"></script>
<script src="/projeto/js/bootstrap.min.js"></script>
</head>
<body>
  <?php include ("navbar.php")?>
  <div class="panel panel-primary">
  <div class="panel-heading">Consulta de Livros</div>
  <div class="panel-body">
  Pesquise: <input type="text" name="search">
  	<input type="submit" name="procurar" value="Procurar"><br>
	
<div class="table-responsive">	
	<table class="table">
	<tr>
    	<td><strong>Imagem</strong></td>
		<td><strong>Título</strong></td>
		<td><strong>Autor</strong></td>
		<td><strong>Gênero</strong></td>
		<td><strong>Editora</strong></td>
		<td><strong>Idioma</strong></td>
		<td><strong>Nº Páginas</strong></td>
		<td><strong>ISBN</strong></td>
		<td><strong>Preço</strong></td>
        <td><strong>Disponível</strong></td>
        <td><strong>Ações</strong></td>
	</tr>
	<?php
	//EXCLUIR CADASTRO
	if(isset($_POST['excluir_post']) && $_POST['excluir_post'] == 'excluir'){
	
	$posts_meta = $_POST['id_do_post'];
	  
			  $deletar_post = mysql_query("DELETE FROM livros WHERE id = '$posts_meta'")
			                  or die(mysql_error());
							  
			if($deletar_post >= '1'){
				echo "<div class=\"ok\">Livro removido com sucesso!</div>";
			}else{
				echo "<div class=\"no\">Erro ao remover o Livro, tente novamente!</div>";
			}

	}
	
	//SELECIONAR DADOS PARA EXIBICAO
	$query = mysql_query("SELECT * FROM livros");	
	while($consulta = mysql_fetch_array($query)){
		
		$id_do_post=$consulta["id"];
		$titulo=$consulta["titulo"];
		$autor=$consulta["autor"];
		$editora=$consulta["genero"];
		$editora=$consulta["id_editora"];
		$idioma=$consulta["idioma"];
		$paginas=$consulta["paginas"];
		$isbn=$consulta["isbn"];
		$preco=$consulta["preco"];
		$imagem=$consulta["imagem"];
		$disponivel=$consulta["disponivel"];

			
	?>
    <!--TABELA COM OS DADOS-->
	<tr>
		<td><?php echo" <img src='imagens/$imagem' width='70' height='80' class='prod-img'>";?></td>
        <td><?php echo $consulta['id'];?></td>
        <td><?php echo $consulta['titulo'];?></td>
		<td><?php echo $consulta['autor'];?></td>
		<td><?php echo $consulta['genero'];?></td>
		<td><?php echo $consulta['id_editora'];?></td>
		<td><?php echo $consulta['idioma'];?></td>
		<td><?php echo $consulta['paginas'];?></td>
		<td><?php echo $consulta['isbn'];?></td>
        <td><?php echo "<div class='price'>R$".number_format($consulta['preco'], 2, ',', '.')."<br /></div>";?></td>
        <td><?php echo $consulta['disponivel'];?></td>
        <td>
        <!--BOTAO EDITAR-->
        <form name="editar_posts" action="edit_livro.php" enctype="multipart/form-data" class="lista_posts" method="post"> 
          <input type="hidden" name="id_do_post" value="<?php echo $id_do_post;?>" />
          <input type="submit" name="editar" value="Editar" class="lista_btn" />        
        </form> 
        <!--BOTAO EXCLUIR-->  
        <form name="excluir_posts" action="" enctype="multipart/form-data" class="lista_posts" method="post">
          <input type="hidden" name="id_do_post" value="<?php echo $id_do_post;?>" />
          <input type="hidden" name="excluir_post" value="excluir" />
          <input type="submit" name="Excluir" value="Excluir" class="lista_btn" />
        </form>
        </td>
	</tr>
	<?php } ?>
	
  
  </table>
  </div>
</div>
</body>
<html>

edit_livros.php

<html>
<head>
		<meta charset="utf-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1" />
		<title>Editar Livro</title>
		<link rel="stylesheet" type="text/css" href="/projeto/css/bootstrap.min.css" />
		<link rel="stylesheet" type="text/css" href="/projeto/css/bootstrap-theme.min.css" />
		<link rel="stylesheet" type="text/css" href="/projeto/css/menu.css" />
		
		<script src="/projeto/js/jquery.min.js"></script>
		
		<script src="/projeto/js/bootstrap.min.js"></script>
</head>
<body>
  <?php include ("navbar.php")?>
  <div class="panel panel-primary">
  <div class="panel-heading">Editando Livro</div>
  <div class="panel-body">
  <?php //ATUALIZAR
 if(isset($_POST['cadastrar_livro']) && $_POST['cadastrar_livro'] == 'cad'){

	$id_a_editar = $_POST['id'];
	$titulo = $_POST['txttitulo'];
	$autor = $_POST['txtautor'];
	$genero = $_POST['txtgenero'];
	$editora = $_POST['txteditora'];
	$idioma = $_POST['txtidioma'];
	$paginas = $_POST['txtpaginas'];
	$isbn = $_POST['txtisbn'];
	$resumo = $_POST['txtresumo'];
	$imagem = $_POST['txtimagem'];
	$preco = $_POST['txtpreco'];
	$disponivel = $_POST['disponivel'];
	
		$edit_livro = "UPDATE livros SET titulo = '$titulo', autor = '$autor', genero = '$genero', id_editora = '$editora', idioma = '$idioma', paginas = '$paginas', isbn = '$isbn', resumo = '$resumo', imagem = '$imagem', preco = '$preco', disponivel = '$disponivel' WHERE id = '$id_a_editar'";
		mysql_query($edit_livro) or die (mysql_error());
		
		if($edit_livros >= '1'){
					echo "<div class=\"ok\">Seu tópico foi atualizado com sucesso com sucesso!</div>";
				}else{
					echo "<div class=\"no\">Erro ao atualizar o tópico</div>";
		   }
}

//SELECIONAR DADOS PARA EXIBIÇÃO
$editar_post_id = $_POST['id_a_editar'];


	$query = mysql_query("SELECT * FROM livros");	
	while($consulta = mysql_fetch_array($query)){
		
		$id=$consulta["id"];
		$titulo=$consulta["titulo"];
		$autor=$consulta["autor"];
		$genero=$consulta["genero"];
		$editora=$consulta["id_editora"];
		$idioma=$consulta["idioma"];
		$paginas=$consulta["paginas"];
		$isbn=$consulta["isbn"];
		$preco=$consulta["preco"];
		$imagem=$consulta["imagem"];
		$disponivel=$consulta["disponivel"];
			
	}
?>
<!--FORMULARIO-->
	<form name="edit_livro" id="edit_livro" enctype="multipart/form-data" class="form-horizontal" method="POST" action="<?php $PHP_SELF; ?>" role="form">
	<div class="table-responsive">	
	<table class="table">
    <?php echo $id;?>
	<tr>
	  <td>
	         <div class="col-lg-6">
			<div class="input-group">
		          <span class="input-group-btn">
				<button class="btn btn-default" type="button">Título</button>
			  </span>
				<input type="text" name="txttitulo" class="form-control" placeholder="" value="<?php echo $titulo; ?>">
			</div><!-- /input-group -->
		</div>
	</td>
	</tr>
	<tr>
		<td>
			<div class="col-lg-6">
				<div class="input-group">
					<span class="input-group-btn">
						<button class="btn btn-default" type="button">Autor</button>
					</span>
						<input type="text" name="txtautor" class="form-control" placeholder="" value="<?php echo $autor; ?>">
				</div><!-- /input-group -->
			</div>
		</td>
	</tr>
	<tr>
		<td>
			<div class="col-lg-6">
				<div class="input-group">
					<span class="input-group-btn">
						<button class="btn btn-default" type="button">Gênero</button>
					</span>
						<input type="text" name="txtgenero" class="form-control" placeholder=""value="<?php echo $genero; ?>">
				</div><!-- /input-group -->
			</div>
		</td>
	</tr>
	<tr>
		<td>
			<div class="col-lg-6">
				<div class="input-group">
					<span class="input-group-btn">
						<button class="btn btn-default" type="button">Editora</button>
					</span>
						<select name="txteditora" class="form-control">
							<option></option>
							<?php
								$qr_editora = mysql_query("SELECT * FROM editora");
								while($editora = mysql_fetch_array($qr_editora)){?>
                                <option value="<?php echo $editora['nome']?>"><?php echo $editora['nome']?></option>				
							<?php } ?>
						</select>
				</div><!-- /input-group -->
			</div>
		</td>
	</tr>
	<tr>
		<td>
			<div class="col-lg-6">
				<div class="input-group">
					<span class="input-group-btn">
						<button class="btn btn-default" type="button">Idioma</button>
					</span>
						<input type="text" name="txtidioma" class="form-control" placeholder="" value="<?php echo $idioma; ?>">
				</div><!-- /input-group -->
			</div>
		</td>
	</tr>
	<tr>
		<td>
			<div class="col-lg-6">
				<div class="input-group">
					<span class="input-group-btn">
						<button class="btn btn-default" type="button">Nº de Páginas</button>
					</span>
						<input type="text" name="txtpaginas" class="form-control" placeholder="">
				</div><!-- /input-group -->
			</div>
		</td>
	</tr>
    <tr>
		<td>
			<div class="col-lg-6">
				<div class="input-group">
					<span class="input-group-btn">
						<button class="btn btn-default" type="button">ISBN</button>
					</span>
						<input type="text" name="txtisbn" class="form-control" placeholder="">
				</div><!-- /input-group -->
			</div>
		</td>
	</tr>
    <tr>
		<td>
			<div class="col-lg-6">
				<div class="input-group">
					<span class="input-group-btn">
						<button class="btn btn-default" type="button">Resumo</button>
					</span>
						<textarea name="txtresumo" rows="5" cols="60"></textarea>
				</div><!-- /input-group -->
			</div>
		</td>
	</tr>
    <tr>
		<td>
			<div class="col-lg-6">
				<div class="input-group">
					<span class="input-group-btn">
						<button class="btn btn-default" type="button">Imagem</button>
					</span>
						<input type="file" name="txtimagem" size="60" />
				</div><!-- /input-group -->
			</div>
		</td>
	</tr>
    <tr>
		<td>
			<div class="col-lg-6">
				<div class="input-group">
					<span class="input-group-btn">
						<button class="btn btn-default" type="button">Preço</button>
					</span>
						<input type="text" name="txtpreco" class="form-control" placeholder="">
				</div><!-- /input-group -->
			</div>
		</td>
	</tr>
    <tr>
		<td>
			<div class="col-lg-6">
				<div class="input-group">
					<span class="input-group-btn">
						<button class="btn btn-default" type="button">Disponível?</button>
					</span>
                            <label>
                              <input type="radio" name="alugado" value="sim" id="RadioGroup1_0">Sim
                            </label>
                            <br>
                            <label>
                              <input type="radio" name="alugado" value="nao" id="RadioGroup1_1">Não
                            </label>

				</div><!-- /input-group -->
			</div>
		</td>
	</tr>
	</div>
	<tr>
		<td>
			<div class="form-group"> 
				<div class="col-sm-offset-2 col-sm-10">
					<input type="hidden" name="cadastrar_livro" value="cad" />
                	<input type="submit" value="Atualizar" name="Cadastrar" class="cadastro_btn" />
				</div>
			</div>
		</td>
	</tr>
  
  </table>
  </div>
</form>
</div>
</body>
<html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isto acontece porque na sua query ao banco de dados da pagina "edit_livros.php" você não esta passando o id_do_post que é o id do item que você quer editar.

 

E como eu posso fazer isso? Já tentei aqui mas não estou conseguindo

Compartilhar este post


Link para o post
Compartilhar em outros sites

No con_livros.php você tem um form com id a ser editado:

<!--BOTAO EDITAR-->
<form name="editar_posts" action="edit_livro.php" enctype="multipart/form-data" class="lista_posts" method="post">
<input type="hidden" name="id_do_post" value="<?php echo $id_do_post;?>" />
<input type="submit" name="editar" value="Editar" class="lista_btn" /> 
</form>

Só que no edit_livros.php você não esta recuperando o $_POST['id_do_post]

- Primeiro você tem que receber o $_POST['id_do_post] e depois fazer a query de select ... exemplo:

$id = $_POST['id_do_post];

mysql_query("SELECT * FROM livros WHERE id = $id");

 

Como você esta começando com PHP sugiro que comece certo e estude um pouco sobre PDO para requisições ao banco de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora deu certo Cesar Miguel, só que quando eu clico em atualizar na tela de atualização ele diz que atualizou mas no banco de dados as modificações não são salvas. O que pode ser?

 

Vou dar uma olhada em PDO sim, valeu a dica, é que eu estava seguindo um tutorial e adaptando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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