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

(Resolvido) Problema ao atualizar dados no BD PostgreSQL


Murilo Cabral

Pergunta

Olá amigos,

estou criando um painel para a manutenção de meu site, porém quando tento atualizar as informações de um determinado produto eu recebo a seguinte mensagem:

Warning: pg_query() [function.pg-query]: Query failed: ERROR: syntax error at or near "," LINE 1: UPDATE produto SET titulo='HD 500Gb ', preço=, codmarca=2, d... ^ in/home/sljvirtu/public_html/teste/class/Produto.class.php on line 142

Para qualquer alteração que eu faça recebo esta mensagem.
Já verifiquei os códigos e não consigo localizar onde estou errando.

Estou enviando os códigos das paginas referente a atualização dos produtos, e o endereço de acesso ao painel.

Endereço de acesso:

http://www.sljvirtual.com.br/teste/admin/index.php

login - adm

senha - 123

__________________________________________________

// Início Código da pagina Produto.class.php

(Esta controla todas as operações executadas referente aos produtos)
<?php
include_once 'BD.class.php';
class Produto {
private $codigo;
private $titulo;
private $preço;
private $codmarca;
private $descricao;
private $destaque;
private $codcategoria;
private $imagem;
private $quant;
//private $nomecategoria;
//private $nomemarca;
//variaveis internas
private $bd; //conexão com o banco
private $tabela; //nome da tabela
public function __construct() {
$this->bd = new BD();
$this->tabela = "produto";
}
public function __destruct() {
unset($this->bd);
}
public function __get($key) {
return $this->$key;
}
//método de retorno de valores do objeto
public function __set($key, $value) {
$this->$key = $value;
}
//METODOS
//BANCO DE DADOS
public function inserir() {
$sql = "INSERT INTO $this->tabela (titulo, preço, codmarca, descricao, destaque, codcategoria, imagem, quant)
values ('$this->titulo', $this->preço, $this->codmarca, '$this->descricao', '$this->destaque', '$this->codcategoria', '$this->imagem', $this->quant)";
$retorno = pg_query($sql);
return $retorno;
}
public function listar($complemento = "") {
$sql = "SELECT * FROM $this->tabela ".
$complemento;
$resultado = pg_query($sql);
$retorno = NULL;
//percorre os registros
while ($reg = pg_fetch_assoc($resultado)) {
//transforma em objetos produto
$obj = new Produto();
$obj->codigo = $reg["codigo"];
$obj->titulo = $reg["titulo"];
$obj->preço = $reg["preço"];
$obj->codmarca = $reg["codmarca"];
$obj->codcategoria = $reg["codcategoria"];
$obj->descricao = $reg["descricao"];
$obj->destaque = $reg["destaque"];
$obj->imagem = $reg["imagem"];
$obj->quant = $reg["quant"];
//adiciona a variavel de retorno
$retorno[] = $obj;
}
return $retorno;
}
/*
public function listarjoin($complemento = "") {
$sql = "select produto.* , categoria.nome as nomecategoria, marca.nome as nomemarca
from produto
inner join categoria on
produto.codcategoria=categoria.codigo
inner join marca on
produto.codmarca=marca.codigo ".$complemento;
$resultado = pg_query($sql);
$retorno = NULL;
//percorre os registros
while ($reg = pg_fetch_assoc($resultado)) {
//transforma em objetos marca
$obj = new Produto();
$obj->codigo = $reg["codigo"];
$obj->titulo = $reg["titulo"];
$obj->preço = $reg["preço"];
$obj->codmarca = $reg["codmarca"];
$obj->codcategoria = $reg["codcategoria"];
$obj->descricao = $reg["descricao"];
$obj->destaque = $reg["destaque"];
$obj->imagem = $reg["imagem"];
$obj->quant = $reg["quant"];
//$obj->nomecategoria = $reg["nomecategoria"];
//$obj->nomemarca = $reg["nomemarca"];
//adiciona a variavel de retorno
$retorno[] = $obj;
}
return $retorno;
}
*/
public function excluir() {
$sql = "delete from $this->tabela where codigo=$this->codigo";
$retorno = pg_query($sql);
return $retorno;
}
public function retornarunico() {
$sql = "Select * FROM $this->tabela where codigo=$this->codigo LIMIT 1";
$resultado = pg_query($sql);
$retorno = NULL;
$req = pg_fetch_assoc($resultado);
if ($req == true) {
$obj = new Produto();
$obj->codigo = $req["codigo"];
$obj->titulo = $req["titulo"];
$obj->preço = $req["preço"];
$obj->codmarca = $req["codmarca"];
$obj->codcategoria = $req["codcategoria"];
$obj->descricao = $req["descricao"];
$obj->destaque = $req["destaque"];
$obj->imagem = $req["imagem"];
$obj->quant = $req["quant"];
$retorno = $obj;
} else {
$retorno = null;
}
return $retorno;
}
public function atualizar() {
$retorno = false;
$sql = "UPDATE $this->tabela SET titulo='$this->titulo', preço=$this->preço, codmarca=$this->codmarca, descricao='$this->descricao', destaque='$this->destaque', codcategoria=$this->codcategoria, imagem='$this->imagem', quant=$this->quant WHERE codigo=$this->codigo";
$retorno = pg_query($sql);
return $retorno;
}
}
?>
// Fim dos códigos da pagina Produto.class.php
_________________________________________________ // ______________________________________________
// Início Código da pagina produto-upd.php
(Esta pagina puxa do BD todos os dados do produto selecionado no ícone edit da pagina produto.php)
<?php
include("cabecalho.php");
// verifica se mandou o código
if (isset($_GET["codigo"]))
{
$objProduto = new Produto();
$objProduto->codigo= $_GET["codigo"];
// item, recebe o objeto populado ou null, se não encontrar o registro
$item=$objProduto->retornarunico();
// se item for null - é que não achou
if ($item==null)
{
header('location:produto.php');
}
else
{
if($item->destaque=='t')
{
$selectdestaque= "<option value='1' selected> Sim </option>
<option value='0'>Não</option>";
}
else
{
$selectdestaque="<option value='1'> Sim </option>
<option value='0' selected >Não</option>";
}
}
}
else
{
// volta para listagem
header ("location:usuario.php");
}
?>
<table class="tbllista" style="width: 15%">
<thead>
<tr align="center">
<th style="width: 5%"></th>
<th style="width: 5%">
<span style="width:150px;"><a href="produto.php"><img src="icones/voltar.png" title="Voltar" /></a></span></th>
<th style="width: 5%"></th>
</thead>
</table>
<h2>Atualização de Produto</h2>
<table>
<form action="produto-upd-ok.php" method="POST" enctype="multipart/form-data">
<tr>
<td align="right"><label>Código:</label></td>
<td><input type="number" name="codigo" value="<?php echo $item->codigo?>" readonly="readonly"></td>
</tr>
<tr>
<td align="right"><label>Titulo:</label></td>
<td><input type="text" name="titulo" value="<?php echo $item->titulo?>"></td>
</tr>
<tr>
<td align="right"><label>Descrição:</label></td>
<td><input type="text" name="descricao" value="<?php echo $item->descricao?>"></td>
</tr>
<tr>
<td align="right"><label>Quantidade:</label></td>
<td><input type="number" name="quant" value="<?php echo $item->quant?>"></td>
</tr>
<tr>
<td align="right"><label>Preço:</label></td>
<td><input type="number" name="preço" value="<?php echo $item->preço?>"></td>
</tr>
<tr>
<td align="right"><label>Categoria:</label></td>
<td><input type="number" name="codcategoria" value="<?php echo $item->codcategoria?>" readonly="readonly"></td>
</tr>
<tr>
<td align="right"><label>Marca:</label></td>
<td><input type="number" name="codmarca" value="<?php echo $item->codmarca?>" readonly="readonly"></td>
</tr>
<tr>
<td align="right"><label>Imagem:</label></td>
<td><input type="file" name="imagem" ></td>
</tr>
<tr>
<td align="right"><label>Destaque:</label></td>
<td><select name="destaque"><?php echo $selectdestaque ?></select>
</td>
</tr>
<tr>
<td><input type="submit" name="cadastrar" value="Atualizar"></td>
</tr>
</form>
</table>
// Fim dos códigos da pagina produto-upd.php
_________________________________________________ // ______________________________________________
// Início Código da pagina produto-upd-ok.php
(Esta pagina finaliza a atualização do produto enviando os dados atualizados)
<?php
include'cabecalho.php';
//Esqueci de inserir este comando grifado em verde de Upload na pagina de conclusão de atualização, por esse motivo a imagem não erra troca.
$imagem = "";
if (isset($_FILES["imagem"]))
{
$dir_dest = "../upload";
$upload = new Upload($_FILES['imagem'], $dir_dest);
// verifica se foi realizado corretamente o Upload
if ($upload->processed){
$imagem = $upload->file_dst_name;
}
}
// O erro que se refere a linha 142 foi que não tinha inserido o o preço para ser atualizado conforme grifado em vermelho.
$objProduto = new Produto();
$objProduto->codigo = $_POST["codigo"];
$objProduto->titulo = $_POST["titulo"];
$objProduto->descricao = $_POST["descricao"];
$objProduto->quant = $_POST["quant"];
$objProduto->preço = $_POST["preço"];
$objProduto->codcategoria = $_POST["codcategoria"];
$objProduto->codmarca = $_POST["codmarca"];
$objProduto->imagem = $_POST["imagem"];
$objProduto->destaque = $_POST["destaque"];
$objProduto->atualizar();
?>
<table class="tbllista" style="width: 15%">
<thead>
<tr align="center">
<th style="width: 5%"></th>
<th style="width: 5%">
<span style="width:150px;"><a href="produto.php"><img src="icones/voltar.png" title="Voltar" /></a></span></th>
<th style="width: 5%"></th>
</tr>
</thead>
</table>
<h2>Atualização de Produto</h2>
<p class="msgok">Produto atualizado com sucesso!</p>
Dados Atualizados para:</br>
Código:<span style="color:#090; margin:0 0 0 10px;"><?php echo $objProduto->codigo?></span><BR/>
Titulo:<span style="color:#090; margin:0 0 0 10px;"><?php echo $objProduto->titulo?></span><BR/>
Descrição:<span style="color:#090; margin:0 0 0 10px;"><?php echo $objProduto->descricao?></span><BR/>
Quantidade:<span style="color:#090; margin:0 0 0 10px;"><?php echo $objProduto->quant?></span><BR/>
Categoria:<span style="color:#090; margin:0 0 0 10px;"><?php echo $objProduto->codcategoria?></span><BR/>
Marca:<span style="color:#090; margin:0 0 0 10px;"><?php echo $objProduto->codmarca?></span><BR/>
Imagem:<span style="color:#090; margin:0 0 0 10px;"><?php echo $objProduto->imagem?></span><BR/>
Destaque:<span style="color:#090; margin:0 0 0 10px;"><?php echo $objProduto->destaque?></span><BR/>

// Fim dos códigos da pagina produto-upd-ok.php

_________________________________________________ // ______________________________________________

Bem,

depois de todos esses códigos analisados, se alguém descobrir onde estou errando e puder me orientar para corrigir o erro, ficarei muito agradecido, pois dependo da correção deste erro para dar continuidade na criação do painel.

Fica aqui meus agradecimentos, e no aguardo da ajuda dos amigos do fórum.

Grande abraço a todos.

Murilo Cabral

Editado por Murilo Cabral
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Olá amigos ai estão as soluções dos erros.

Erro de não atualizar imagens:
Esqueci de inserir este comando de Upload na pagina de conclusão de atualização(produtos-upd-ok.php), por esse motivo a imagem não erra troca, ou seja atualizada por uma outra imagem enviada pelo formulário do Painel ADM.

E o erro referente a linha 142, foi que eu esqueci de listar o preço para ser atualizado na pagina, conforme grifei em vermelho em (produtos-upd-ok.php).

Espero ter ajudado em alguma coisa e agradeço a atenção de todos.

Quando tiver mas problemas estarei entrando em contato com os amigos para solicitar a ajuda de vocês.

Grande abraço a todos.

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,3k
    • Posts
      652,5k
×
×
  • Criar Novo...