Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 411
Sexo: Masculino
Localização: VOLTA REDONDA RJ
Contato:

insert ou update automatico

05-09-2012 10:36

Tenho uma situação que no php que eu gero uma média , tipo .

André = media 5
Maria = média 7

Sendo que estas médias são alteradas conforme a inserção de dados .
Eu preciso usar estas médias em outras páginas onde vou somar e dividir para uma nova média de um conjunto de dados, logo , acredito que a maneira mais fácil seria inserir estas médias em uma tabela , onde teria um controle melhor , como fazer ? ja que esta vem de uma string e não de um formulário ? e o update ? ja que estas modificam conforme a inserção de dados ?

resumindo. Qual o melhor caminho a seguir ....?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

insert ou update automatico

05-09-2012 11:20

Dependendo dos valores, pela própria query você pode fazer a média. Como os valores ficam na tabela?
0
A melhor hospedagem para o seu site HostGator!
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

insert ou update automatico

05-09-2012 11:21

Lembrei que aqui no fórum tem um exemplo para obter a média de valores pela query Usando-o-AVG-para-obter-media-de-valores_19_5989.html
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 411
Sexo: Masculino
Localização: VOLTA REDONDA RJ
Contato:

insert ou update automatico

05-09-2012 11:54

o problema é que ha casos onde são inseridos 5 valores , 4 valores e até 6 valores podendo ficar assim :

responsável mario
usuarios
joao | 5 | 6 | 8 | 9 | = média 7
maria | 3 | 6 | 8 | 9 | 5 | = média 7 , pois o 5 substitui o 3 ( feito no php )
josé | 3 | 6 | 8 | 9 | 3 | = média 6,5 , pois o segundo 3 neste caso não substitui o primeiro 3, ai entra o 6° valor = 8 = nova média 7,25

Funciona tudo perfeitamente , mas ai quando eu quero fazer a média do mário é que ta dando problema , não consigo acertar os resultados .
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

insert ou update automatico

05-09-2012 12:26

Não entendi muito bem até agora como está ai sua estrutura. Esses valores são linhas distintas, colunas?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 411
Sexo: Masculino
Localização: VOLTA REDONDA RJ
Contato:

insert ou update automatico

05-09-2012 12:55

id | id_user | id_resp | valor1 | valor2 | valor3 | valor4 | valor5 | valor6

A média é feita no php, o sistema funciona da seguinte forma:
1- A média da soma dos primeiros 4 valores for igual ou maior a 7 - ok - Faz a média final igual a esta
2- se não, inclui o valor 5 , este substitui o menor dos 4 valores iniciais e se faz uma nova média , se for maior ou igual a 7 - ok - Faz a média final igual a esta
3- se não, somo esta média ao valor6 divido por 2 e faço uma nova média.

Ha casos em que usa-se só 4 valores , porém pode-se usar 5 ou 6 conforme a necessidade , tipo :

responsável mario
usuarios
joao | 5 | 6 | 8 | 9 | = média 7 ( alcançou a média , usou só 4 valores )
maria | 3 | 6 | 8 | 9 | 5 | = média 7 , pois o 5 substitui o 3 ( precisou do valor5 para alcançar a média )
josé | 3 | 6 | 8 | 9 | 3 | = média 6,5 , pois o segundo 3 neste caso não substitui o primeiro 3, ai entra o 6° valor = 8 = nova média 7,25 ( precisou do valor6 para alcançar a média )

Por isso , acredito que gravar a média final seria o mais correto e mais fácil.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

insert ou update automatico

05-09-2012 15:13

Essa parte do if da soma e da tirada do valor você já fez? Falta o que?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 411
Sexo: Masculino
Localização: VOLTA REDONDA RJ
Contato:

insert ou update automatico

05-09-2012 15:34

Falta eu fazer a media do mario .
que seria :
( media do joao + media da maria + media do jose ) / 3

sendo que '3' é a quantidade de usuarios , podendo variar para cada responsável .
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

insert ou update automatico

05-09-2012 16:47

Então se eu entendi você tem as 3 médias, dentro de um foreach por exemplo, uma em cada linha.

Ai você quer somar esses 3 valores e dividir pelo números de linhas?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 411
Sexo: Masculino
Localização: VOLTA REDONDA RJ
Contato:

insert ou update automatico

05-09-2012 17:51

sim, estas médias vem de uma condição if , faço um loop com while e mostro os usuários e suas médias , preciso é mostrar a média do responsável , tipo :

joao = $media = 7,0
maria = $media = 7,0
josé = $media = 7,25

logo:

mario = 7,08

Se eu for buscar o resultado no bd e fazer o calculo , o problema é no caso do conjunto , pois nem todos recebem o valor5 e valor6 . tipo :

joao | 5 | 6 | 8 | 9 | = só 4 valores - ok
maria | 3 | 6 | 8 | 9 | 5 | = 5 valores - o valor5 substitui o menor , a media é feita com os 4 maiores
josé | 3 | 6 | 8 | 9 | 3 | 9 |= 6 valores - é feita a media dos 4 primeiros, depois soma o valor6 e dividido por 2

parece complicado mas a situação é simples, se eu tiver como pegar o valor do $media jogar numa outra tabela resolvo o problema.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

insert ou update automatico

05-09-2012 19:59

Por exemplo, se você adicionar $media no array. Você pode usar um array_sum depois.

<?php $valor = array(); for($i=0; $i < 5; $i++) { $valor[] = $i; } echo array_sum($valor); ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 411
Sexo: Masculino
Localização: VOLTA REDONDA RJ
Contato:

insert ou update automatico

06-09-2012 09:39

Bom dia.
isso eu ja faço para calcular a média, o problema é o caso dos valores 5 e 6 na hora da media do responsável. exemplo.

SELECT bolitim_notas_bim.bim_id, AVG(bolitim_notas_bim.bim_bim1) AS valor1, AVG(bolitim_notas_bim.bim_bim2) AS valor2, AVG(bolitim_notas_bim.bim_bim3) AS valor3, AVG(bolitim_notas_bim.bim_bim4) AS valor4,  bolitim_notas_bim.bim_id_professor, bolitim_notas_bim.sala_nota, boletim_sala.sala_id, boletim_sala.sala_nome FROM bolitim_notas_bim, boletim_sala WHERE bolitim_notas_bim.bim_id_professor = $prof AND boletim_sala.sala_id = bolitim_notas_bim.sala_nota  GROUP BY bolitim_notas_bim.sala_nota

Funciona perfeitamente, a média vem certinha.

Incluindo valores 5 e 6
SELECT bolitim_notas_bim.bim_id, AVG(bolitim_notas_bim.bim_bim1) AS valor1, AVG(bolitim_notas_bim.bim_bim2) AS valor2, AVG(bolitim_notas_bim.bim_bim3) AS valor3, AVG(bolitim_notas_bim.bim_bim4) AS valor4, AVG(bolitim_notas_bim.bim_bim5) AS valor5, AVG(bolitim_notas_bim.bim_bim6) AS valor6,  bolitim_notas_bim.bim_id_professor, bolitim_notas_bim.sala_nota, boletim_sala.sala_id, boletim_sala.sala_nome FROM bolitim_notas_bim, boletim_sala WHERE bolitim_notas_bim.bim_id_professor = $prof AND boletim_sala.sala_id = bolitim_notas_bim.sala_nota  GROUP BY bolitim_notas_bim.sala_nota

a média vem errada, isso ocorre pq tenho campos vazios nos valores 5 e 6:

joao | 5 | 6 | 8 | 9 | NULL | NULL |
maria | 3 | 6 | 8 | 9 | 5 | NULL |
josé | 3 | 6 | 8 | 9 | 3 | 9 |

o problema é no conjunto, a média individual do joao , maria , jose , funciona perfeitamente. em outro sql.
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 411
Sexo: Masculino
Localização: VOLTA REDONDA RJ
Contato:

insert ou update automatico

06-09-2012 10:17

Desculpe por estar postando sem aguardar a resposta, é q não tem a opção de editar.

para facilitar o entendimento da sql :

SELECT id_user, id_resp, AVG(valor1) AS va1, AVG(valor2) AS va2, AVG(valor3) AS va3, AVG(valor4) AS va4 WHERE id_resp = $resp GROUP BY id_resp


SELECT id_user, id_resp, AVG(valor1) AS va1, AVG(valor2) AS va2, AVG(valor3) AS va3, AVG(valor4) AS va4, AVG(valor5) AS va5, AVG(valor6) AS va6 WHERE id_resp = $resp GROUP BY id_resp

Sei que não tem sentido eu fazer a média com valores nulos ou vazio, qual seria a maneira mais correta ?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

insert ou update automatico

06-09-2012 12:48

Se esses valores NULL vierem como 0?

Ou, dentro do while, você somar os 4 primeiros valores, não tendo a média, soma o quinto, etc...
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 411
Sexo: Masculino
Localização: VOLTA REDONDA RJ
Contato:

insert ou update automatico

09-09-2012 11:15

Modifiquei minha tabela , criando a coluna media, quando faço os cadastros, a média e calculada automaticamente e inserida na tabela através de um input hidden.

SELECT id_user, id_resp, AVG(media) AS med WHERE id_resp = $resp GROUP BY id_resp

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

insert ou update automatico

09-09-2012 11:16

Boa. Só acho que faltou a aspas aqui

id_resp = '$resp'
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 411
Sexo: Masculino
Localização: VOLTA REDONDA RJ
Contato:

insert ou update automatico

09-09-2012 11:27

tranquilo, essa sql foi so de exemplo, ta tudo funcionando perfeitamente.
Vlw
0

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado