Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde senhores, preciso de uma ajuda.
Tenho que comparar o códido atual com o código anterior, se forem iguais, então são do mesmo grupo, então eu somo...e imprimo somente quando somar o ultimo valor do mesmo grupo...por exemplo, teria que ficar assim:
codigo pontos
1 10
1 12
1 8
total pontos grupo 1: 30
2 5
2 7
total pontos grupo 2: 12
3 1
3 6
3 15
3 2
total pontos grupo 3: 24
.
.
.
.
.
e assim vai
while ($row = @oci_fetch_array($sql, OCI_BOTH)) {
$codgre = $row[0];
$pontos = $row[1];
}Faz esse agrupamento no SQL, e inclusive o count você consegue fazer lá.
E uma boa William, só que meu sql já está bem complicado, eu já pego esses pontos a partir da soma de uma multiplicação
Sum(e140ipv.qtdfat * e075pro.usu_ponfidel) AS pontos,
Tá.. e se vc criasse uma VIEW desse primeiro SQL, e o segundo só agruparia dessa VIEW ?
Se o primeiro já está complicado, acho que a VIEW vale a pena para diminuir a complexidade no teu sistema.
Enfim, caso ainda assim não queria, para fazer direto no php, vc tem que usar arrays, e a chave do array seria o próprio ID, somando apenas os valores do mesmo ID.
>
Tá.. e se você criasse uma VIEW desse primeiro SQL, e o segundo só agruparia dessa VIEW ?
Se o primeiro já está complicado, acho que a VIEW vale a pena para diminuir a complexidade no teu sistema.
Enfim, caso ainda assim não queria, para fazer direto no php, você tem que usar arrays, e a chave do array seria o próprio ID, somando apenas os valores do mesmo ID.
Vou te falar que não sou bom com view, vou tentar com array, pode me dar uma luz de como começar William?
Uma VIEW é como se fosse uma "outra tabela", para vc consultar.
CREATE VIEW v_foo_bar AS SELECT ..simples assim.
O array seria meio feio, pois a aplicação estaria fazendo o trabalho que certamente no banco seria mais rápido:
$arr = array();
while ($row = @oci_fetch_array($sql, OCI_BOTH)) {
$codgre = $row[0];
$pontos = $row[1];
$arr[$codgre] += $pontos
}
var_dump($arr);Não deu certo William, está somando tudo, talvez eu precise de alguma maneira encaixar um FOR ali no meio...
Não cara! não precisa de for não!
Como ficou o var_dump() ?
E pq vc não usa a VIEW ?
>
Não cara! não precisa de for não!
Como ficou o var_dump() ?
E pq você não usa a VIEW ?
William, deu certinho!!!
Muito obriado mesmo meu caro!!!!
Faz esse agrupamento no SQL, e inclusive o count vc consegue fazer lá.