Autor | Zpráva | ||
---|---|---|---|
PHP_Nemaster Profil |
#1 · Zasláno: 2. 10. 2009, 20:44:49
Dobrý den,
mám takový problém: potřebuju spolu sečíst více čísel, ale problém je v tom, že ta čísla se načítají z databáze, tudíž jich může být 5, ale i třeba 16. Poradíte mi prosím jak to udělat? Zkusil jsem toto: while( $i = mysql_fetch_array( $result ) ) { echo $i['number'] + $i['number']; } Ale to sečetlo jenom dvě stejná čísla na stejném řádku v databázi. Předem děkuji za odpověd' |
||
denCo Profil |
#2 · Zasláno: 2. 10. 2009, 20:50:29
vsetky si ich nacitaj z databazy, uloz si ich do premennej, scitaj a mas
a ako konkretne vyzera ta tabulka? a kde mas ulozenie tie cisla? |
||
Vagrant Profil |
#3 · Zasláno: 2. 10. 2009, 20:51:11 · Upravil/a: Vagrant
Zkus toto:
$soucet=0; while( $i = mysql_fetch_array( $result ) ) { $soucet = $soucet+$i['number']; } |
||
Nox Profil |
#4 · Zasláno: 2. 10. 2009, 20:51:35 · Upravil/a: Nox
To je samozřejmý když sčítáš tu samou proměnnou...a ještě navíc tam je nesmyslně echo, žádný přiřazení
Podle toho co potřebuješ by to mohlo v pohodě jít sečíst rovnou při získávání z DB select sum(number) from some_table Jinak ale na toto bys snad mohl přijít sám, neříkej že ne. Udělej si třeba proměnnou mimo ten cyklus a do ní v každým kroku cyklu přičítej tu získanou hodnotu Něco jako $total=0; while($i=mysql_fetch_array($result)) $total += $i["number"]; |
||
PHP_Nemaster Profil |
#5 · Zasláno: 2. 10. 2009, 22:37:31
„select sum(number) from some_table“
No jo, dík. Že jde i tohle jsem úplně zapomněl. |
||
tiso Profil |
#6 · Zasláno: 2. 10. 2009, 22:41:01
PHP_Nemaster: ďalšia možnosť je sčítať si ich v databáze a vrátiť si len súčet. Záleží od toho, čo presne potrebuješ.
|
||
PHP_Nemaster Profil |
#7 · Zasláno: 2. 10. 2009, 22:52:42
Ale ono to jaksi nefunguje. :(
Mám tento dotaz: $points_total = "SELECT SUM( points ) FROM land_build WHERE playername = '".$name."'; "; $points_result = mysql_query( $points_total ); $points = mysql_fetch_array( $points_result ); echo $points['points']; A píše mi to: "Undefined index points in profile.php on line 394" Není potřeba tu funkci třeba nějak povolit v my.ini nebo nějak nainstalovat? |
||
AM_ Profil |
#8 · Zasláno: 2. 10. 2009, 23:01:22
SELECT SUM(points) AS points FROM ...
nebo echo $points[0]. S minimální snahou jsi na to mohl přijít, stačilo si výsledné pole points vypsat třeba pomocí print_r. Jinak mysql_fetch_array mi přijde dost neefektivní, používal bych mysql_fetch_assoc nebo mysql_fetch_row, podle toho, jestli chceš mít výsledné pole indexované čísly nebo názvy sloupců (fetch_array vyplivne obojí, takže pole je 2x tak velké,protože všechny informace obsahuje 2x) |
||
tiso Profil |
#9 · Zasláno: 2. 10. 2009, 23:04:26
PHP_Nemaster: vraciaš si
SELECT points -> $points['points'] SELECT SUM(points) -> $points['SUM(points)'] SELECT SUM(points) AS points_sum -> $points['points_sum'] |
||
Nox Profil |
#10 · Zasláno: 2. 10. 2009, 23:40:46
nebo použij mysql_result
|
||
Časová prodleva: 16 let
|
0