PHP & MySql

PHP & MySql

offline
  • Marko Radukin
  • Mikro-X
  • Pridružio: 21 Nov 2008
  • Poruke: 29
  • Gde živiš: Novi Sad

Pozdrav,
Pravim neki program u PHP, a usput koristim i MySQL. E ovako ja preko PHP-a unosim podatke koji se kasnije sabiraju i unose u bazu podataka. U bazi imam jednu kolonu UKUPNO, i tu imam oko 100 podataka, naravno sve su brojevi. E sad, ja treba da seberem sve rezultate iz te kolone i da ih upisem u kolonu SVEUKUPNO. Znam kako bih sabrao te dve kolone, ali meni treba da saberem sve podatke iz samo jedne kolone. To bi trebalo da izgleda ovako:
+---------+ +-------------+
+UKUPNO+ +SVEUKUPNO+
+---------+ +---------------+
+ 20 + + 60 +
+---------+ +--------------+
+ 40 +
+---------+
Nadam se da ste me razumeli šta hoću. Hvala unapred Smile



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 10 Avg 2006
  • Poruke: 1009
  • Gde živiš: Beograd

To što ti hoćeš je, naravno, moguće uraditi. Međutim, deluje mi glupo i nepraktično. Imaš čitavu kolonu za samo jedno polje (SVEUKUPNO).

Po mom mišljenju bi trebalo da napraviš novu tabelu u koju ćeš ubacivati te stvari kojima je potrebno samo jedno polje, a trebala bi da izgleda ovako:

+IME PROMENLJIVE++VREDNOST+

gde bi u koloni ime promenljive ubacivao baš kao što i reč kaže, imena promenljivih, a u "vrednost" ubacivao vrednosti tih promenljivih. Druga stvar koja mislim da ti ne valja je to što nemaš "ID" kolonu. Ja ID kolonu imam u 99% tabela. Ona drži identifikacione brojeve svakog reda tabele, tako da ne može da dođe do zabune pri računanju, brisanju, prepravljanju.

Kako god, podatke iz kolone ukupno bi sabrao ovako:

$zbir = 0; $rezultat = mysql_query("SELECT UKUPNO FROM IME_TABELE"); while ($red=mysql_fetch_array($rezultat,MYSQL_NUM)) { $zbir += $red[0]; }

Onda taj zbir ubaci gde već želiš.



offline
  • PHP Developer
  • Pridružio: 02 Okt 2005
  • Poruke: 546

a moze i mysql da uposlis brze je
$query = "SELECT SUM(UKUPNO) as SVEUKUPNO FROM products;";
http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_sum

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3760
  • Gde živiš: 127.0.0.1

A moze i ovako:

SELECT SUM(`ukupno`) FROM `ime_tabele`;

Dobija 1 red, nema potrebe za while petljom i sabiranjem kroz PHP. Ili, ako zeli sve u jednom upitu, ovako:

UPDATE `druga_tabela` SET `sve_ukupno` = SELECT SUM(`ukupno`) FROM `prva_tabela`;

offline
  • Marko Radukin
  • Mikro-X
  • Pridružio: 21 Nov 2008
  • Poruke: 29
  • Gde živiš: Novi Sad

Napisano: 09 Okt 2011 14:17

E ovako,
kao prvo, hvala na odgovorima, a kao drugo Smile ... Ta baza podataka naravno ne sadrzi samo kolone UKUPNO i SVEUKUPNO. U njoj imaju i kolone ID, KUKURUZ, SOJA, TOP. Ja imam php program "http://mikro-x.com/farma/cene.php", koji mi trazi da unesem cenu kukuruza, sojine pogace i top-a. Kada ja unesem te cene, on onda mnozi cenu kukuruza sa 54, soju sa 40 i top sa 5. Kasnije to upise u bazu, a iz baze cita te podatke. U koloni ukupno u programu, on sabira te izmnozene vrednosti, i tako popunjava tu tabelu. Trenutne vrednosti u redu ukupno su 3630 i 2986. Naravno, posto ce se to azurirate dnevno, on bi trebao da sabira to iz kolone ukupno i da upise u drugu kolonu sve ukupno, što bi u ovom slucaju iznosilo 6616, ali naravno da se to sabira automatski, da ne moram ja da uzimam digitron, i tako na hiljade redova sabiram... Predpostavljam da sam sada malo više pojasnio šta želim da uradim.
Hvala još jednom Smile

Dopuna: 09 Okt 2011 15:59

Uspeo sam da uradim, hvala puno Smile

Ko je trenutno na forumu
 

Ukupno su 777 korisnika na forumu :: 6 registrovanih, 0 sakrivenih i 771 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: bojank, Koridor, LUDI, stegonosa, wizzardone, šumar bk2