Ir para conteúdo
Fórum Script Brasil
  • 0

Problema com UPDATE


bateraaa

Pergunta

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>
&lt;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[preço]; ?>" 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'];
    $preço=$_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=java script: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=java script: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=java script:history.go(-1) class=negrito12verde12verde>Clique aqui para voltar</a></center></font>";
                include "404.php";
            }
        elseif(empty($preço))
            {
                $_SESSION['erro']="<font face=verdana size=1><center>Informe o preço do livro.<br><a href=java script: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=java script: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=java script: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=java script: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=java script: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=java script: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=java script: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=java script: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=java script: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=java script: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=java script: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=java script: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=java script: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', preço='$preço', 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=java script: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,
  `preço` 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!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
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..)

---

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

---

$atua=mysql_query("UPDATE compras SET id='$id', titulo='$titulo', autor='$autor', isbn='$isbn', preço='$preço', 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'");
--- 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,
  `preço` 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!

Não vejo erro na forma como você escreveu o SQL, exceto pela atualização do atributo id, que não há necessidade de ser atualizado.

Seu problema pode estar na formação da string para aceitação de sua linguagem de programação.

Transferindo MySQL -->> PHP

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...