Autor Zpráva
Divally
Profil *
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
Za řádek 4 vložte
print_r($zaznam);
a bude to jasné i Vám.

Pak si někde najděte, jak funkce mysql_fetch_array() funguje a jak se s ní pracuje.
Joker
Profil
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 *
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
Divally:
Mně se jako nejjednodušší způsob jeví
SELECT SUM(castka) FROM …
Divally
Profil *
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
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);

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: