Autor | Zpráva | ||
---|---|---|---|
Casero Profil |
#1 · Zasláno: 28. 8. 2006, 20:39:09
proč to dělá, že to něco našlo když tam je sum??...
$vysl=mysql_query("select sum(cena) from trh", $GLOBALS["link"]); if (mysql_num_rows($vysl)==0) $tech3["cena"]="-"; zatímco bez sum, jen cena se zobrazí - jakto??..co s tím? |
||
gaminn Profil * |
#2 · Zasláno: 28. 8. 2006, 20:41:48
No samozřejmě, že to něco vrátí, konkrétně jeden řádek, ve kterém bude v sloupci sum(cena) součet všech hodnot sloupce cena.
|
||
Casero Profil |
#3 · Zasláno: 28. 8. 2006, 20:45:39
gaminn
cože??..jako ale tam jako sem to ořízl, o where, kterej to omezuje a proč teda bez sum to nic nevytáhne, ha? |
||
Casero Profil |
#4 · Zasláno: 28. 8. 2006, 20:47:04
$vysl=mysql_query("select sum(cena) as cena from trh where cosi=cosi", $GLOBALS["link"]);
if (mysql_num_rows($vysl)==0) $tech3["cena"]="-"; takhle, ale cosi, se nerovná cosi $vysl=mysql_query("select cena as cena from trh where cosi=cosi", $GLOBALS["link"]); if (mysql_num_rows($vysl)==0) $tech3["cena"]="-"; a todle už funguje s - proč??? |
||
gaminn Profil * |
#5 · Zasláno: 28. 8. 2006, 20:48:32
SUM() jednoduše vždy vrátí jeden řádek, i když máš tabulku prázdnou, pořád dostaneš jeden řádek (s hodnotou NULL).
|
||
Casero Profil |
#6 · Zasláno: 28. 8. 2006, 20:50:52
gaminn
no a jak teda mám udělat, aby když tam nic nebylo se npasalo -??.. |
||
Casero Profil |
#7 · Zasláno: 28. 8. 2006, 20:51:06
pls...
|
||
gaminn Profil * |
#8 · Zasláno: 28. 8. 2006, 20:51:47
Použij to bez funkce SUM, potom ti to nevrátí žádný řádek.
|
||
Casero Profil |
#9 · Zasláno: 28. 8. 2006, 21:01:55
gaminn
:-D takže to dělat cyklem, jo???....nebo to fakt nejde, nějak, jako aby to nevracelo null hodnotu, nebo podmínka když je sum=null?? |
||
gaminn Profil * |
#10 · Zasláno: 28. 8. 2006, 21:06:01
Jaký cyklus sem zase motáš? :D Ujasni si, jaké výsledky dostáváš při jakých dotazech. Pokud použiješ agregační funkci sum, která sečte všechny hodnoty ve sloupci, dostaneš tento součet nebo hodnotu NULL = vždy dostaneš jeden řádek, takže mysql_num_rows($vysl) má hodnotu 1. Kdežto pokud použiješ select cena from trh, dostaneš sadu, která má tolik řádků, kolik řádků je v tabulce.
|
||
Casero Profil |
#11 · Zasláno: 28. 8. 2006, 21:11:55
no právě, tak jestli nejde SUm tak bych to vytahl všecky ty řádky, pak cyklem je sečetl, taková vlastní sum fce..ale nejde to teda s tím sum, jako nějak, že if $zaznam["cena"]==NULL ??
|
||
gaminn Profil * |
#12 · Zasláno: 28. 8. 2006, 21:17:08
Jedno z kouzel SQL spočívá v tom, že si můžeš ušetřit spoustu řádků programování, SQL to může udělat za tebe. Takže to sčítat ve vlastním skriptu, když to za tebe může sečíst SQL.
Ano, pokud $zaznam["cena"]==NULL a zároveň sloupec cena má nastaveno NOT NULL, potom máš jistotu, že v tabulce není záznam. Pokud ti jde o prosté zjištění, zda je v tabulce záznam, proč na to aplikovat SUM? Proč to dělat jednoduše, když to jde složitě, že? :D |
||
Casero Profil |
#13 · Zasláno: 28. 8. 2006, 21:24:18
gaminn
no mě příde jednoduchší než dávat 2 selecty, první na zjištění jestli je záznam, a pa jestli je tak druhej select na sečtení...nebo yslíš že je to výhodný??..když to dělám složitě jak říkáš??..tak s % tam bude hodně řádku |
||
gaminn Profil * |
#14 · Zasláno: 28. 8. 2006, 21:25:58
Ok, potřebuješ-li ten součet, tak samozřejmě testuj na NULL. Myslel jsem, že ti jde jen o zjištění počtu záznamů v tabulce.
|
||
Casero Profil |
#15 · Zasláno: 28. 8. 2006, 21:36:40
gaminn
OK dik..75%* |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0