Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Laskeminen (PHP)

Vasta_alkaja [27.04.2008 16:44:04]

#

Kuten aiheen otsikkokin kertoo, niin ongelma on laskemisesta. Sen paremmin en osaa näin selittää, mutta yritän parhaani koodillisesti

 // Tietokannassa olisi esim 3 henkilöä ja ne kaikki tulostuisivat mukaan

$k = "SELECT henkilo, maksu, maksu2, maksu3 FROM tietokanta";
$t = mysql_query($k);
if(!$t){
  echo 'Uusiks meni';
}

$summa = 0;

while($r = mysql_fetch_assoc($t))
{
   $m1 = $r['maksu'];
   $m2 = $r['maksu2'];
   $m3 = $r['maksu3'];

   $summa = $m1 + $m2 + $m3;
}

echo $summa;

Ongelma on siis siinä, että summaan tulevaa vain viimeinen henkilo. Pitäisi saada kaikkien kolmen henkilön yhteistulos tuohon muuttujaan.

TsaTsaTsaa [27.04.2008 16:51:09]

#

$summa += $m1 + $m2 + $m3;

Vasta_alkaja [27.04.2008 16:53:45]

#

Aah.. Ja seän toimi kerralla kunnolla.

punppis [29.04.2008 18:10:56]

#

Tuon maksu+maksu2+maksu3 laskutoimituksen voi tehdä myös suoraan tuossa select-lausessa:

SELECT henkilo, SUM(maksu, maksu2, maksu3) as 'summa' FROM tietokanta

Antti Laaksonen [29.04.2008 18:19:19]

#

Tai ehkä paremminkin näin:

SELECT SUM(maksu + maksu2 + maksu3) FROM tietokanta

Wizard [29.04.2008 18:28:07]

#

Tai ehkä mieluummin näin:

select henkilo, SUM(maksu, maksu2, maksu3) as 'summa'
from tietokanta
group by henkilo

Eli käytetään sitä GROUP BY syntaksia jotta saadaan jokaiselle henkilölle oma summa sarake eikä laskeskella mitä sattuu.

Antin esimerkissä taas lasketaan sitten summa kolmesta sarakkeesta koko taulusta, yksi summa kaikille henkilöille. Jos oikein käsitin, kolme henkilöä ja jokaisella on taulussa kolme summa saraketta eli yhteensä 9 solua laskettavana?

-W-

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta