29/10/2012

Função SUM() do SQL no PDO

Boa tarde, estou tendo um problema na minha aplicação.

Sempre que tento executar uma consulta no BD, usando PDO, que contenha no meio da instrução SQL a função "SUM()" seguida de um apelido da erro. Quando eu tiro o apelido funciona numa boa..

Alguém aí já viu isso ?

Desde já, brigado!

PHP

Felipern

Melhor resposta

16/03/2013

Para os que estão querendo o código e o rapaz ai não mostrou...
Vou posta em dois formatos o mais simples e o que eu usei em minha aplicação...

function prodOnCartSum(){ // Conta a quantidade total de produtos, sempre proteção, sem parametros... [SIMPLE]
$pdo = $this->pdo;
try {
$stmte = $pdo->query("SELECT SUM(CR_QUANT) FROM CARRINHO");
$count = $stmte->fetchColumn();
return $count;
}catch(PDOException $e){
setcookie("ErroPDO","Falha no Calculo de Produtos no carrinho - ".$e->getMessage());
return false;
}
}

function prodOnCartSum($idPed){ // Soma o valor dos Produtos no Carrinho, com uso de JOIN, Proteção contra Injection, com parametro... [Mais Complexa...]
$pdo = $this->pdo;
try {
$stmte = $pdo->prepare("SELECT SUM(PR_VALOR) FROM CARRINHO, PRODUTOS WHERE CR_PED_ID = ? AND CR_PROD_ID = PR_ID");
$stmte->bindParam(1, $idPed , PDO::PARAM_INT);
$stmte->execute();
$count = $stmte->fetchColumn();
return $count;
}catch(PDOException $e){
setcookie("ErroPDO","Falha no Calculo de Produtos no carrinho - ".$e->getMessage());
return false;
}
}

// Resultado usando var_dump()...
// string(5) "870.5"

Na forma mais complexa, estou pegando o 'Total' dos preços de todos os produtos que estão no carrinho referente a um Pedido 'x', Minha aplicação separa define os valores dos produtos na tabela PRODUTOS, e define os produtos do Pedido na tabela CARRINHO, então para que eu possa saber qual o valor total do pedido sem precisar criar um codigo PHP, eu faço um JOIN das duas tabelas e uso a função SUM no PDO. Não tem muito segredo, para quem esta iniciando e melhor esquecer a forma mais complexa e praticar na primeira... As duas estão em Paradigmas de Orientação a Objetos, Boa sorte com os códigos...

Chinnon Santos

Responder Citar

Outras Respostas

29/10/2012

Eduardo Oliveira

Posta o code pra facilitar o auxilio.
Responder Citar

29/10/2012

Felipern

RESOLVIDO !

Agora funcionou.

Não me perguntem pq, só funcionou...

Podem fechar o tópico.

Obrigado
Responder Citar

29/10/2012

Marcio Araujo

post o codigo para verificar...
Responder Citar

30/10/2012

Eduardo Oliveira

Seria legal se voce mostrasse a solução para que sirva de exemplos a outros usuário que possam vir a passar pelo mesmo problema. Muito Grato.
Responder Citar

30/10/2012

Tiago Currículo

Que bom Felipe que funcionou, você poderia nos mostrar a codificação para podermos estudar o evento?
Responder Citar

16/03/2013

Chinnon Santos

Para os que estão querendo o código e o rapaz ai não mostrou...
Vou posta em dois formatos o mais simples e o que eu usei em minha aplicação...

function prodOnCartSum($idPed){ // Soma o valor dos Produtos no Carrinho
$pdo = $this->pdo;
try {
$stmte = $pdo->query("SELECT SUM(CR_QUANT) FROM CARRINHO"); // Conta a quantidade total de produtos
$count = $stmte->fetchColumn();
return $count;
}catch(PDOException $e){
setcookie("ErroPDO","Falha no Calculo de Produtos no carrinho - ".$e->getMessage());
return false;
}
}
Responder Citar

27/07/2013

José

Olá pessoal, já que a duvida inicial foi solucionada estou finalizando este tópico.
Responder Citar