Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 437275
            [titulo] => Função SUM() do SQL no PDO
            [dataCadastro] => DateTime Object
                (
                    [date] => 2013-03-16 21:10:47
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 328732
            [status] => A
            [isExample] => 
            [NomeUsuario] => Chinnon Santos
            [Apelido] => Chinnon Santos
            [Foto] => perfil-48.jpg
            [Conteudo] => 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... ) )

Função SUM() do SQL no PDO

PHP
Felipern
|
MVP
    29 out 2012

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!

Post mais votado

Chinnon Santos
   - 16 mar 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...

1
|
0

Eduardo Oliveira
   - 29 out 2012

Posta o code pra facilitar o auxilio.

0
|
0

Felipern
|
MVP
    29 out 2012

RESOLVIDO !

Agora funcionou.

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

Podem fechar o tópico.

Obrigado

0
|
0

Marcio Araujo
   - 29 out 2012

post o codigo para verificar...

0
|
0

Eduardo Oliveira
   - 30 out 2012

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.

0
|
0

Tiago
|
MVP
Pontos: 120
    30 out 2012

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

0
|
0

Chinnon Santos
   - 16 mar 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($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;
}
}

0
|
0

José
   - 27 jul 2013

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

1
|
0