Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Proracun vrednosti iz MySql polja

[es] :: PHP :: Proracun vrednosti iz MySql polja

[ Pregleda: 2408 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mica99
Srbija

Član broj: 243749
Poruke: 90
195.252.70.*



+1 Profil

icon Proracun vrednosti iz MySql polja15.02.2010. u 21:04 - pre 172 meseci
Potrebna mi je pomoc oko jednog koda.

Kako da napisem funciju u php-u koja ce da uradi propacun vrednosti iz mysql polja. Naime imam
polja "cena" sad kako unosim cene proizvoda , potrebno da se u drugu tabelu u polju "ukupna cena" sabiraju vrednosti iz polja "cena".

==== Tabela "podaci" =================== ===== Tabela "finansije "==============
ID (auto inc.) Cena (int) ================ ======Ukupna cena (int)
1 100,00 -------------------------------------------350,00
2 130,00
3 120,00
.
.
n
 
Odgovor na temu

squirll

Član broj: 248171
Poruke: 106
*.dynamic.isp.telekom.rs.



+66 Profil

icon Re: Proracun vrednosti iz MySql polja15.02.2010. u 22:06 - pre 172 meseci
ako sam te ja dobro razumeo.... To mozes i bez php-a...samo uz pomoc mysql.... sa f SUM()

UPDATE podaci SET ukupna_cena = SUM(cena)

mada tabela ti nije dobro napravljena radice ce ali nije dobro ...
imas
ID - CENA - Ukup. CENA
1-120-500
2-130-500
3-200-500

uvek ukup cenu imas istu ...
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
109.93.214.*



+218 Profil

icon Re: Proracun vrednosti iz MySql polja15.02.2010. u 22:33 - pre 172 meseci
Nije ti bas najpametnije da ukupnu cenu drzis u posebnoj tabeli. To ce kasnije da se jako zapetlja a cene ce biti svakakve. Jeste da ce ti brze odraditi preglede ali verovatno ces doci u situacju da nece biti tacni.
Bolje ti je da je uvek preracunavas.

Po tvome moze (updatujes finansijaki dokument sa id 1):

UPDATE finansije SET ukupna_cena = (SELECT SUM(cena) FROM podaci WHERE finansije_id=1)
WHERE id=1

Ali ja bih pre vadio uvek preracunate podatke i tako nemas da brines o update izmenama, eksternim sql-ovim, ako pukne skripta u pola izvrsavanja (ako ne radis preko transkacija) itd:

SELECT p.finansije_id, SUM(p.cena)
FROM finansije f
LEFT JOIN podaci p ON p.finansije_id=f.id
GROUP BY p.finansije_id


[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

mica99
Srbija

Član broj: 243749
Poruke: 90
195.252.70.*



+1 Profil

icon Re: Proracun vrednosti iz MySql polja15.02.2010. u 22:35 - pre 172 meseci
Ja sam mislio da ukupna cena je polje u drugu tabelu koja se zove finansije
 
Odgovor na temu

mica99
Srbija

Član broj: 243749
Poruke: 90
195.252.70.*



+1 Profil

icon Re: Proracun vrednosti iz MySql polja15.02.2010. u 23:06 - pre 172 meseci
VladaSu, nije problem da ja drzim sve u istu tabelu i cene i ukupnu cenu ali onda ce doci do toga sto je squirll rekao da ce za svaki red da mi se ponovi
ista cifra.

" ID - CENA - Ukup. CENA
1-120-500
2-130-500
3-200-500

uvek ukup cenu imas istu ... "
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
77.46.196.*



+218 Profil

icon Re: Proracun vrednosti iz MySql polja16.02.2010. u 10:38 - pre 172 meseci
Ne ponavaljs cenu. I dalje mozes da imas dve tabele.

SELECT p.finansije_id, SUM(p.cena)
FROM finansije f
LEFT JOIN podaci p ON p.finansije_id=f.id
GROUP BY p.finansije_id


Ovde ti je sve sto sam radio uradjeno u 2 tabele i nisam nigde rekao da bude jedna tabela.

Kako da znas koje cene idu u koji finansijski dokument?

Imas cenu 1 = 10 i cenu 2 = 30 to ide u finansije ukupno=40 i posle imas cenu 3 = 17 i to ide u finansije ukupno=17.
Kako da znas da cena 1 i 2 idu u jedanu ukupnu cenu a cena 3 ide u drugu ukupnu cenu?
Kakva ce ti muka biti ako ti je ukupna cena u svakom redu u jednoj tabeli? Ako izmenis jedan red onda moras sve redove da menjas.
Kako ces da izracunas onda ukupnu cenu svuh ukupnih cena? Kako ces da povezujes sa drugim tabelama?
Sve ce ti to kasnije biti muka teska!

Rekao sam ovako nesto:
1. Slucaj kada pamtis ukupnu cenu
tabela podaci:
id--|--finansije_id--|-cena-|
1--|-----1---------|--10--|
2--|-----1---------|--30--|
3--|-----2---------|--17--|
tabela finansije:
id | ukupna_cena |
1-|-----40-------|
2-|-----17-------|
ovo resavas ako menjas recimo dokument 1, sql:
UPDATE finansije SET ukupna_cena = (SELECT SUM(cena) FROM podaci WHERE finansije_id=1)
WHERE id=1

Predosti ovoga je sto ti finansije ne zavise od magacina, odnosno prodaje, odnoso ne zavise od necega sto prodajes ili kupujes vec mozes da uneses u finansije troskove kao sto je racun za struju, vodu, internt itd....
Mana je sto moras svaki put kada menjas dokument da pokrenes sql da uradi update tabele finansije. Problem nasteje kada recimo imas bug i programu i onda moras da ga ispravis sa sql-om i zaboravis da updatujes tabelu. Ili ako ti pukne skripta ako ne radis preko transakcija. Podaci ce biti pogresni.

Drugi primer:
2. Slucaj kada preracunavas ukupnu cenu
tabela podaci:
id--|--finansije_id--|-cena-|
1--|-----1---------|--10--|
2--|-----1---------|--30--|
3--|-----2---------|--17--|
tabela finansije:
id |
1-|
2-|

SELECT p.finansije_id, SUM(p.cena)
FROM finansije f
LEFT JOIN podaci p ON p.finansije_id=f.id
GROUP BY p.finansije_id

sada ces da dobijes rezultate

finansije_id | sum_of_cena |
----1------|----40--------|
----2------|----17--------|


Predosti ovog slucaja je to sto ti nece doci do greske u programu ali neces moci da unostis ostale finansijske dokumente kao sto su troskovi.
Mislim moci ces to da resis ali ce ti biti velika komplikacija jer ces morati union 2 tabele pa kasnije iz tog unijona da obradjujes podatke. Ili napravi neki view pa ce ti malo olaksati problem
sa unosom troskova.





[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

[es] :: PHP :: Proracun vrednosti iz MySql polja

[ Pregleda: 2408 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.