Autor | Zpráva | ||
---|---|---|---|
Divally Profil * |
#1 · Zasláno: 1. 2. 2012, 03:05:43
Ahoj,
začínám s PHP a SQL a právě jsem se zasekl na zdánlivě triviální věci. Udělal jsem si malou aplikaci na "domácí účetnictví", ale sčítání mi nějak nefunguje. Pokud napíšu následující kód, tak se mi vypíše správný seznam hodnot (882, 737, 13, 137, 138), které se vytáhli z databáze. Vše funguje v pořádku $dotaz = "SELECT castka FROM ucto WHERE mesic=" . $mesic . " AND rok=" . $rok . " AND osoba='david'"; $vysledek = mysql_query ($dotaz); echo "<div class=\"list\"><ul>"; while ($zaznam = mysql_fetch_array($vysledek)): echo "<li>"; echo $zaznam["castka"]; echo "</li>"; endwhile; echo "</ul>"; echo "</div>"; Ovšem mě zajímá celkový součet hodnot. Kód je následující. $dotaz = "SELECT castka FROM ucto WHERE mesic=" . $mesic . " AND rok=" . $rok . " AND osoba='david'"; $vysledek = mysql_query ($dotaz); $zaznam = mysql_fetch_array($vysledek); $celkem = array_sum($zaznam); echo "Celkem: " . $celkem; Problém je v tom, že mi to vypíše "Celkem: 1764". Přitom 882 + 737 + 13 + 137 + 138 = 1907 Vůbec mi není jasný čím to je :-/ Předem děkuju za jakoukoliv pomoc. |
||
Keeehi Profil |
#2 · Zasláno: 1. 2. 2012, 03:27:20
Za řádek 4 vložte
print_r($zaznam); Pak si někde najděte, jak funkce mysql_fetch_array() funguje a jak se s ní pracuje. |
||
Joker Profil |
#3 · Zasláno: 1. 2. 2012, 07:35:43
Divally:
„Ovšem mě zajímá celkový součet hodnot.“ Je v tom případě nějaký důvod to nesečíst rovnou v databázi? |
||
Divally Profil * |
#4 · Zasláno: 1. 2. 2012, 11:35:57
Jak říkám, jsem v PHP i SQL úplný začátečník, takže jako nejjednodušší způsob mě napadlo vytáhnout hodnoty z databáze, a pak je v PHP jednoduše sečíst.
|
||
Joker Profil |
#5 · Zasláno: 1. 2. 2012, 13:47:24
Divally:
Mně se jako nejjednodušší způsob jeví SELECT SUM(castka) FROM … |
||
Časová prodleva: 3 dny
|
|||
Divally Profil * |
#6 · Zasláno: 4. 2. 2012, 12:26:33
Joker: Perfektní, děkuju za pomoc!
Keeehi: Děkuju za popostrčení, už je mi práce s mysql_fetch_array() jasná.
Takhle už to funguje v pohodě. $dotaz = "SELECT SUM(castka) FROM ucto WHERE mesic=" . $mesic . " AND rok=" . $rok . " AND osoba='david'"; $vysledek = mysql_query ($dotaz); $zaznam = mysql_fetch_array($vysledek); echo "Celkem: " . $zaznam["SUM(castka)"]; |
||
panther Profil |
#7 · Zasláno: 4. 2. 2012, 12:55:52
Divally:
„Takhle už to funguje v pohodě.“ měl by stačit i kratší zápis, echo mysql_result(mysql_query("SELECT SUM(castka) FROM ucto WHERE mesic=" . $mesic . " AND rok=" . $rok . " AND osoba='david'"), 0); |
||
Časová prodleva: 12 let
|
0