Ir para conteúdo

POWERED BY:

Arquivado

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

bateraaa

[Resolvido] Problema com UPDATE

Recommended Posts

Boa noite galera do forum!

Preciso da ajuda de vocês, pois estou há alguns dias procurando algum bug mas não encontro.

 

Vale lembrar que estou usando o PHPMyAdmin 2.10.3 e PHP 5.

 

O que acontece é que estou desenvolvendo um sistema de administração que cadastra livros no MySQL. Para cadastrar, funciona. Na hora de editar é que tá o problema. Na hora que clico para editar, aparece a mensagem que configurei pra quando conseguir atualizar com sucesso, mas no banco de dados não altera o valor.

 

Os códigos são:

 

Arquivo editarlivro.php (o formulário que busca no banco de dados os valores para serem editados. Tá funcionando normal mas só tá um pouco extenso por causa do CSS e Javascript..)

<?php
	include "config.php";
	include"restrito.php";
	$id=$_GET["cod"];
	$x=mysql_query("select * from compras where id='$id'");
	$y=mysql_fetch_array($x);
?>
<?php echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"; ?>
<!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>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1", true />
<link href="../estilos.css" rel="stylesheet" type="text/css" />
<style type="text/css" media="screen">
<!--
#editlivrocorpo {
	width: 650px;
	display: block;
	margin: 0 auto;
	position: relative;
	top:0px;
	z-index:1;
	overflow: auto;
	left: 338;
	height: 850px;
}
#editverisbn {
	position:absolute;
	left:2px;
	background-color:transparent;
	top:9px;
	width:627px;
	height:820px;
}
#editverdescricao {
	position:absolute;
	left:12px;
	background-color:transparent;
	top:246px;
	width:495px;
	height:121px;
}
-->
</style>
<script language='JavaScript'>
function SomenteNumero(e){
    var tecla=(window.event)?event.keyCode:e.which;
    if((tecla > 47 && tecla < 58)) return true;
    else{
    if (tecla != 8) return false;
    else return true;
    }
}
</script>
</head>
<body>
<div id="editlivrocorpo">
  <div id="editverisbn">
    <form id="form1" name="form1" method="post" action="?controle=editandolivro">
      <table width="100%" border="0" align="center" cellpadding="0" cellspacing="2">
        <tr>
          <td colspan="3" class="negrito12verde"><div align="center">Editando livro <?php echo $y[titulo]; ?></div></td>
        </tr>
        <tr>
          <td colspan="3"> </td>
        </tr>
        <tr>
          <td colspan="3" class="normal12verde"><div align="justify">
            Utilize o formulário abaixo caso queira editar um livro já cadastrado. Mas atenção: PARA ALTERAR A FOTO VOCÊ DEVE, PRIMEIRO, EXCLUIR O LIVRO E CADASTRÁ-LO NOVAMENTE!<br />
            <span class="negrito12vermelho">O PESO DO LIVRO DEVE SER INFORMADO MESMO QUE PERMANEÇA O MESMO</span></div></td>
        </tr>
        <tr>
          <td colspan="3"> </td>
        </tr>
        <tr>
          <td width="35%" class="negrito12verde">Título:</td>
          <td colspan="2"><input name="cxtitulo" type="text" class="camposform12" id="cxtitulo" style="background-color: transparent" value="<?php echo $y[titulo]; ?>" size="40" maxlength="255" /></td>
        </tr>
        <tr>
          <td class="negrito12verde">Autor:</td>
          <td colspan="2"><input name="cxautor" type="text" class="camposform12" id="cxautor" style="background-color: transparent" value="<?php echo $y[autor]; ?>" size="40" maxlength="255" /></td>
        </tr>
        <tr>
          <td class="negrito12verde">ISBN:</td>
          <td colspan="2"><input name="cxisbn" type="text" class="camposform12" id="cxisbn" value="<?php echo $y[isbn]; ?>" size="40" maxlength="255" style="background-color: transparent" /></td>
        </tr>
        <tr>
          <td class="negrito12verde">Preço:</td>
          <td colspan="2"><input name="cxpreco" type="text" class="camposform12" id="cxpreco" value="<?php echo $y[preco]; ?>" size="40" maxlength="255" style="background-color: transparent" />
            <span class="negrito10verde">*49,90 = R$ 49,90</span></td>
        </tr>
        <tr>
          <td valign="top" class="negrito12verde">Foto da capa:</td>
          <td colspan="2"><?php echo "<img src='$y[foto]' width='60' height='70' border='0'>"; ?></td>
        </tr>
        <tr>
          <td class="negrito12verde">Editora:</td>
          <td colspan="2"><input name="cxeditora" type="text" class="camposform12" id="cxeditora" value="<?php echo $y[editora]; ?>" size="40" maxlength="255" style="background-color: transparent" /></td>
        </tr>
        <tr>
          <td class="negrito12verde">Idioma:</td>
          <td colspan="2"><input name="cxidioma" type="text" class="camposform12" id="cxidioma" value="<?php echo $y[idioma]; ?>" size="40" maxlength="255" style="background-color: transparent" /></td>
        </tr>
        <tr>
          <td class="negrito12verde">Edição:</td>
          <td colspan="2"><input name="cxedicao" type="text" class="camposform12" id="cxedicao" value="<?php echo $y[edicao]; ?>" size="40" maxlength="255" style="background-color: transparent" /></td>
        </tr>
        <tr>
          <td class="negrito12verde">Páginas:</td>
          <td colspan="2"><input name="cxpaginas" type="text" class="camposform12" id="cxpaginas" value="<?php echo $y[paginas]; ?>" size="40" maxlength="255" style="background-color: transparent" /></td>
        </tr>
        <tr>
          <td class="negrito12verde">Tipo de capa:</td>
          <td colspan="2"><input name="cxcapa" type="text" class="camposform12" id="cxcapa" value="<?php echo $y[capa]; ?>" size="40" maxlength="255" style="background-color: transparent" /></td>
        </tr>
        <tr>
          <td valign="top" class="negrito12verde">Resenha:</td>
          <td colspan="2"><label>
            <textarea name="cxresenha" id="cxresenha" cols="45" rows="5" wrap="hard" style="background-color: transparent"><?php echo $y[resenha]; ?></textarea>
          </label></td>
        </tr>
        <tr>
          <td valign="top" class="negrito12verde">Sobre o autor:</td>
          <td colspan="2"><label>
            <textarea name="cxsobreautor" id="cxsobreautor" wrap="hard" cols="45" rows="5" style="background-color: transparent"><?php echo $y[sobreautor]; ?></textarea>
          </label></td>
        </tr>
        <tr>
          <td colspan="3" class="negrito12verde"> </td>
        </tr>
        <tr>
          <td colspan="3" class="negrito12verde" align="justify">ATENÇÃO: As informações abaixo irão aparecer para o usuário no site do PagSeguro quando o botão comprar for clicado.</td>
        </tr>
        <tr>
          <td colspan="3" class="negrito12verde"> </td>
        </tr>
        <tr>
          <td class="negrito12verde">Título:</td>
          <td colspan="2"><input name="cxpagtitulo" type="text" class="camposform12" id="cxpagtitulo" value="<?php echo $y[titulo_pagseguro]; ?>" size="40" maxlength="255" style="background-color: transparent" /></td>
        </tr>
        <tr>
          <td class="negrito12verde">Autor:</td>
          <td colspan="2"><input name="cxpagautor" type="text" class="camposform12" id="cxpagautor" value="<?php echo $y[autor_pagseguro]; ?>" size="40" maxlength="255" style="background-color: transparent" /></td>
        </tr>
        <tr>
          <td class="negrito12verde">Preço:</td>
          <td colspan="2"><input name="cxpagpreco" type="text" class="camposform12" id="cxpagpreco" value="<?php echo $y[preco_pagseguro]; ?>" size="40" maxlength="255" style="background-color: transparent" />
            <span class="negrito10verde">*4590 = R$45,90</span></td>
        </tr>
        <tr>
          <td class="negrito12verde">Peso:<span class="negrito10vermelho"> (deixe este campo como está)</span></td>
          <td colspan="2"><input name="cxpagpreco2" type="text" class="camposform12" id="cxpagpreco2" value="<?php echo $y[peso_pagseguro]; ?>" size="20" maxlength="255" style="background-color: transparent" />
            <span class="negrito10verde">gramas</span></td>
        </tr>
        <tr>
          <td class="negrito12verde">Peso a ser cadastrado:</td>
          <td colspan="2"><select name="cxpagpeso" class="camposform12" id="cxpagpeso" style="background-color: transparent">
            <option selected="selected"> </option>
            <option value="0300">0,300</option>
            <option value="1000">1</option>
            <option value="2000">2</option>
            <option value="3000">3</option>
            <option value="4000">4</option>
            <option value="5000">5</option>
            <option value="6000">6</option>
            <option value="7000">7</option>
            <option value="8000">8</option>
            <option value="9000">9</option>
            <option value="10000">10</option>
            <option value="11000">11</option>
            <option value="12000">12</option>
            <option value="13000">13</option>
            <option value="14000">14</option>
            <option value="15000">15</option>
            <option value="16000">16</option>
            <option value="17000">17</option>
            <option value="18000">18</option>
            <option value="19000">19</option>
            <option value="20000">20</option>
            <option value="21000">21</option>
            <option value="22000">22</option>
            <option value="23000">23</option>
            <option value="24000">24</option>
            <option value="25000">25</option>
            <option value="26000">26</option>
            <option value="27000">27</option>
            <option value="28000">28</option>
            <option value="29000">29</option>
            <option value="30000">30</option>
          </select>
            <span class="negrito10verde">kg </span><span class="negrito10vermelho">INSIRA O PESO DO LIVRO AQUI!</span></td>
        </tr>
        <tr>
          <td class="negrito12verde">Número:</td>
          <td colspan="2"><input name="cxpagnumero" type="text" class="camposform12" id="cxpagnumero" value="<?php echo $y[numero_pagseguro]; ?>" size="40" maxlength="255" style="background-color: transparent" onkeypress="return SomenteNumero(event)" />
            <span class="negrito10verde">*ISBN sem traços</span></td>
        </tr>
        <tr>
          <td colspan="3"> </td>
        </tr>
        <tr>
          <td> </td>
          <td width="17%"><input name="Submit" type="submit" class="botaobusca" value="Editar" /></td>
          <td width="48%"><input name="Submit2" type="reset" class="botaobusca" value="Redefinir" /></td>
        </tr>
      </table>
    </form>
    <br />
  </div>
</div>
</body>
</html>

 

O arquivo editandolivro.php (é nele que está o comando UPDATE que não atualiza o banco)

<link href="../estilos.css" rel="stylesheet" type="text/css">
<?php
	include "config.php";
	include "restrito.php";
	$id=$_GET['cod'];
	$titulo=$_POST['cxtitulo'];
	$autor=$_POST['cxautor'];
	$isbn=$_POST['cxisbn'];
	$preco=$_POST['cxpreco'];
	$editora=$_POST['cxeditora'];
	$idioma=$_POST['cxidioma'];
	$edicao=$_POST['cxeditora'];
	$paginas=$_POST['cxpaginas'];
	$capa=$_POST['cxcapa'];
	$resenha=$_POST['cxresenha'];
	$sobreautor=$_POST['cxsobreautor'];
	$titulo_pagseguro=$_POST['cxpagtitulo'];
	$autor_pagseguro=$_POST['cxpagautor'];
	$preco_pagseguro=$_POST['cxpagpreco'];
	$peso_pagseguro=$_POST['cxpagpeso'];
	$numero_pagseguro=$_POST['cxpagnumero'];

		if(empty($titulo))
			{
				$_SESSION['erro']="<font face=verdana size=1><center>Informe o título do livro.<br><a href=javascript:history.go(-1) class=negrito12verde12verde>Clique aqui para voltar</a></center></font>";
				include "404.php";
			}
		elseif(empty($autor))
			{
				$_SESSION['erro']="<font face=verdana size=1><center>Informe o autor do livro.<br><a href=javascript:history.go(-1) class=negrito12verde12verde>Clique aqui para voltar</a></center></font>";
				include "404.php";
			}
		elseif(empty($isbn))
			{
				$_SESSION['erro']="<font face=verdana size=1><center>Informe o ISBN do livro.<br><a href=javascript:history.go(-1) class=negrito12verde12verde>Clique aqui para voltar</a></center></font>";
				include "404.php";
			}
		elseif(empty($preco))
			{
				$_SESSION['erro']="<font face=verdana size=1><center>Informe o preço do livro.<br><a href=javascript:history.go(-1) class=negrito12verde12verde>Clique aqui para voltar</a></center></font>";
				include "404.php";
			}
		elseif(empty($editora))
			{
				$_SESSION['erro']="<font face=verdana size=1><center>Informe a editora do livro.<br><a href=javascript:history.go(-1) class=negrito12verde12verde>Clique aqui para voltar</a></center></font>";
				include "404.php";
			}
		elseif(empty($idioma))
			{
				$_SESSION['erro']="<font face=verdana size=1><center>Informe o idioma do livro.<br><a href=javascript:history.go(-1) class=negrito12verde12verde>Clique aqui para voltar</a></center></font>";
				include "404.php";
			}
		elseif(empty($edicao))
			{
				$_SESSION['erro']="<font face=verdana size=1><center>Informe a edição do livro.<br><a href=javascript:history.go(-1) class=negrito12verde12verde>Clique aqui para voltar</a></center></font>";
				include "404.php";
			}
		elseif(empty($paginas))
			{
				$_SESSION['erro']="<font face=verdana size=1><center>Informe o número de páginas do livro.<br><a href=javascript:history.go(-1) class=negrito12verde12verde>Clique aqui para voltar</a></center></font>";
				include "404.php";
			}
		elseif(empty($capa))
			{
				$_SESSION['erro']="<font face=verdana size=1><center>Informe o tipo de capa do livro.<br><a href=javascript:history.go(-1) class=negrito12verde12verde>Clique aqui para voltar</a></center></font>";
				include "404.php";
			}
		elseif(empty($resenha))
			{
				$_SESSION['erro']="<font face=verdana size=1><center>Insira a resenha do livro.<br><a href=javascript:history.go(-1) class=negrito12verde12verde>Clique aqui para voltar</a></center></font>";
				include "404.php";
			}
		elseif(empty($sobreautor))
			{
				$_SESSION['erro']="<font face=verdana size=1><center>Insira um texto breve sobre o autor do livro.<br><a href=javascript:history.go(-1) class=negrito12verde12verde>Clique aqui para voltar</a></center></font>";
				include "404.php";
			}
		elseif(empty($titulo_pagseguro))
			{
				$_SESSION['erro']="<font face=verdana size=1><center>Informe o título do livro para aparecer no PagSeguro.<br><a href=javascript:history.go(-1) class=negrito12verde12verde>Clique aqui para voltar</a></center></font>";
				include "404.php";
			}
		elseif(empty($autor_pagseguro))
			{
				$_SESSION['erro']="<font face=verdana size=1><center>Informe o autor do livro para aparecer no PagSeguro.<br><a href=javascript:history.go(-1) class=negrito12verde12verde>Clique aqui para voltar</a></center></font>";
				include "404.php";
			}
		elseif(empty($preco_pagseguro))
			{
				$_SESSION['erro']="<font face=verdana size=1><center>Informe o preço do livro para aparecer no PagSeguro.<br><a href=javascript:history.go(-1) class=negrito12verde12verde>Clique aqui para voltar</a></center></font>";
				include "404.php";
			}
		elseif(empty($peso_pagseguro))
			{
				$_SESSION['erro']="<font face=verdana size=1><center>Informe o peso do livro para aparecer no PagSeguro.<br><a href=javascript:history.go(-1) class=negrito12verde12verde>Clique aqui para voltar</a></center></font>";
				include "404.php";
			}
		elseif(empty($numero_pagseguro))
			{
				$_SESSION['erro']="<font face=verdana size=1><center>Informe o número (ISBN sem traços) do livro para aparecer no PagSeguro.<br><a href=javascript:history.go(-1) class=negrito12verde12verde>Clique aqui para voltar</a></center></font>";
				include "404.php";
			}
			
		else
			{
				$atua=mysql_query("UPDATE compras SET id='$id', titulo='$titulo', autor='$autor', isbn='$isbn', preco='$preco', editora='$editora', idioma='$idioma', edicao='$edicao', paginas='$paginas', capa='$capa', resenha='$resenha', sobreautor='$sobreautor', titulo_pagseguro='$titulo_pagseguro', autor_pagseguro='$autor_pagseguro', preco_pagseguro='$preco_pagseguro', peso_pagseguro='$peso_pagseguro', numero_pagseguro='$numero_pagseguro' WHERE id='$id'");

				if($atua)
					{
						echo "<center><div class=negrito12verde>Livro atualizado com sucesso!<br><A HREF=?controle=livros class=negrito12verde>Continuar</a></div></center>";
					}
				else
					{
						echo "<center><div class=negrito12verde>Erro na atualização!<br><A HREF=javascript:history.go(-1) class=negrito12verde>Voltar</a></div><center>";
					}
			}
?>

 

Esta é a tabela no BD:

-- phpMyAdmin SQL Dump
-- version 2.10.3
-- http://www.phpmyadmin.net
-- 
-- Servidor: localhost
-- Tempo de Geração: Ago 04, 2009 as 07:56 PM
-- Versão do Servidor: 5.0.51
-- Versão do PHP: 5.2.6

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

-- 
-- Banco de Dados: `editora`
-- 

-- --------------------------------------------------------

-- 
-- Estrutura da tabela `compras`
-- 

CREATE TABLE `compras` (
  `id` int(11) NOT NULL auto_increment,
  `titulo` varchar(255) NOT NULL,
  `autor` varchar(255) NOT NULL,
  `isbn` varchar(255) NOT NULL,
  `preco` varchar(255) NOT NULL,
  `foto` varchar(255) NOT NULL,
  `editora` varchar(255) NOT NULL,
  `idioma` varchar(255) NOT NULL,
  `edicao` varchar(255) NOT NULL,
  `paginas` varchar(255) NOT NULL,
  `capa` varchar(255) NOT NULL,
  `resenha` text NOT NULL,
  `sobreautor` text NOT NULL,
  `titulo_pagseguro` varchar(255) NOT NULL,
  `autor_pagseguro` varchar(255) NOT NULL,
  `preco_pagseguro` varchar(255) NOT NULL,
  `peso_pagseguro` varchar(255) NOT NULL,
  `numero_pagseguro` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=16 ;

O pior de tudo é que quando executo isso, aparece "Livro atualizado com sucesso!" , que é a mensagem configurada pra caso o comando SQL seja executado com sucesso, mas no BD não muda nenhum valor.

 

Poderiam me ajudar?

 

P.S. Na edição ele não edita a foto porque não sei como excluir uma e cadastrar outra em cima apagando o valor no BD e excluindo a foto no servidor pra depois fazer o move_uploaded_file, mas imagino que isso seja assunto pra outro tópico.

 

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos ver a tua string do SQL:

$atua=mysql_query("UPDATE compras SET id='$id', titulo='$titulo', autor='$autor', isbn='$isbn', preco='$preco', editora='$editora', idioma='$idioma', edicao='$edicao', paginas='$paginas', capa='$capa', resenha='$resenha', sobreautor='$sobreautor', titulo_pagseguro='$titulo_pagseguro', autor_pagseguro='$autor_pagseguro', preco_pagseguro='$preco_pagseguro', peso_pagseguro='$peso_pagseguro', numero_pagseguro='$numero_pagseguro' WHERE id='$id'");
Estranho você 'querer' atualizar o campo id... ^_^

$sql= "UPDATE `compras` 
SET titulo='{$titulo}', autor='{$autor}', isbn='{$isbn}', preco='{$preco}', editora='{$editora}', 
idioma='{$idioma}', edicao='{$edicao}', paginas='{$paginas}', capa='{$capa}', resenha='{$resenha}', 
sobreautor='{$sobreautor}', titulo_pagseguro='{$titulo_pagseguro}', autor_pagseguro='{$autor_pagseguro}', 
preco_pagseguro='{$preco_pagseguro}', peso_pagseguro='{$peso_pagseguro}', 
numero_pagseguro='{$numero_pagseguro}' 
WHERE id= {$id} ";

 $atua=mysql_query($sql)or die(mysql_error());
diga se voltou algum erro.

 

http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Usei o {}, pois para concatenar no php, ele é mais rápido que o ponto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E aí William! Valeu pela resposta, mas eu consegui achar o erro. Era a ação do formulário que não pegava o id... ae não dá mesmo! hehe..

 

Se quiser ver, tá aqui neste fórum.

 

Pode encerrar o tópico.

Abraço.

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.