PHP-juntti kyselee, kun en löytänyt vinkeistä suoraan tähän
tapaukseen sopivaa käskyä. Eli pitäisi saada KULU-sarakkeen
yhteissumma laskettua ja näkyviin (euroja, 2 desimaalia). VOISIKO joku olla niin ystävällinen, että
täydentäisi ko. koodin alla olevaan runkoon?
<?php
$database="menot";
mysql_connect("localhost", "user", "secret");
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM menoja";
$result=mysql_query($query);
$num=mysql_numrows($result);
$i=0;
while ($i < $num) {
$ID=mysql_result($result,$i,"ID");
$KULUSELI=mysql_result($result,$i,"KULUSELI");
$KULU=mysql_result($result,$i,"KULU");
$i++;
}
$KULUYHT=????
?>
Ratkaisu löytyy SQL-lauseesta:
SELECT SUM(KULU) AS kuluyht FROM menoja
Edit. Eikun tosiaan SUM(KULUSELI)... ei taida oikeen toimia :)
Taulun sisältö on ilmeisesti jotain tämän kaltaista:
ID | KULUSELI | KULU -------------------- 0 | Seli | 10 1 | Seliseli | 15
Jos haluat vain summan, seuraavanlainen SQL-lause voisi toimia.
SELECT SUM(KULU) FROM menoja
Toinen vaihtoehto on, että lisään ennen while-silmukan alkua
$KULUYHT=0;
ja while-silmukan sisälle loppuun
$KULUYHT=$KULUYHT+$KULU
.
Hei ja KIITOS A-P!
Tuo toinen vaihtoehto oli se ratkaisu! Olen yrittänyt monia
vaihtoehtoja, mutta vasta nyt tämä toimii. Ja vielä desimaalien
kanssa! Eli sekä int että dec vaihtoehdot MySQL:ssä pelaa.
Tuo ensimmäinenkin PITÄISI pelata monen ohjekirjan mukaan,
mutta tähän mennessä se on tarjonnut vain herjoja.
Juu, tuo ensimmäinen vaihtoehto on kylläkin se parempi vaihtoehto... Tuo on aika hidas purkka toi kaikkien rivien läpikäyminen. Siis jos ajattelee vaikka, että tietokannassa on 50 k rivii, niin ei niitä kaikkia 50 000 riviä kannata sieltä hakea, koska sellaisen datamäärän hakeminen on hidasta, kuormittaa turhaan tietokantaa ja niiden looppaaminenkin on hidasta.
Mutta, ihan miten vaan, jos on pääasia, että toimii, niin hyvä niin :)
Tervehdys ajv! Olisi mielenkiintoista nähdä miten tuo
ensimmäinen "SELECT SUM(KULU) FROM menoja" sijoitetaan
tuohon lähettämääni yksinkertaiseen kehikkoon, niin että se toimii.
Eli tarkalleen ottaen mitä ja mihin, ja mitä echo " -käskyn
jälkeen että saa summan näkyviin. En ole nähnyt vielä yhtään
toimivaa mallia. Missä vika, SUOMEKSI! Muista että olen
PHP-juntti, ja vaikka olenkin rakennellut varausjärjestelmiä
ja rahtiohjelmia PHP-MySQL -periaattella, niin aina löytyy
aukkoja tiedoissa. Thanks in advance!
No yksinkertaisimmillaan se toiminnee näin:
<?php $query="SELECT SUM(KULU) AS KULUYHT FROM menoja"; $result=mysql_query($query); $row = mysql_fetch_assoc($result); $kuluyht = $r['KULUYHT']; // nimesi viitaten pistetään tähän nyt vielä laiskan koodarin onlineri :) list($kuluyht) = mysql_fetch_row(mysql_query("SELECT SUM(KULU) AS KULUYHT FROM menoja"));
Kiitos myös Sinulle ajv! Pienen korjauksen jälkeen alkoi laskenta toimia:
$kuluyht = $r['KULUYHT'];
korjasin
$kuluyht = $r['KULU'];
Kuten huomaat, pelkkä SUM(KULU) -vinkki ei kerro sitä, että koko kyselyrakenne on toisenlainen tässä tapauksessa.
Nimimerkkini mukaisesti - JimLazy=JussiLaiska - pyrin saamaan oppia mahdollisimman paljon istumatta vuosia koulun penkillä.
Vanhana ammattimuusikkona minulle riittää tieto siitä, mikä on kappaleen sävellaji, loput "kaahaan" perässä vanhalla kokemuksella. Mutta vihreälle soittajan alulle pitää olla paperi, jossa kappaleen rakenne on kokonaisuudessaan näkyvissä.
Toivottavasti voin itsekin olla avuksi muille vastaisuudessa kunhan pääsen tästä vihreydestäni. Hyvää kevättä ajv!
Aihe on jo aika vanha, joten et voi enää vastata siihen.