Autor Zpráva
Casero
Profil
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 *
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
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
$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 *
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
gaminn
no a jak teda mám udělat, aby když tam nic nebylo se npasalo -??..
Casero
Profil
pls...
gaminn
Profil *
Použij to bez funkce SUM, potom ti to nevrátí žádný řádek.
Casero
Profil
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 *
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
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 *
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
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 *
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
gaminn
OK dik..75%*
Toto téma je uzamčeno. Odpověď nelze zaslat.