Autor Zpráva
nethor
Profil
Zdravím,
mám tabulku ve které jsou údaje o fotografiích
a m.j. sloupec 'zobrazit' int(1) [možné hodnoty: 0,1 ], který určuje, zda se fotografie má zobrazovat.

Potřebuji vytáhnout údaje : kolik je v db fotografií celkem, kolik se zobrazuje a kolik je skrytých.
Dotaz:
select 
count(id) as celkem , 
count(zobrazit) as zobrazene , 
count(id) - count(zobrazit) as skryte  
from  foto
vrací v počtu 'zobrazene' i položky s hodnotou 0 .
Šlo by to obejít pomocí mysql_num_rows() nebo nahradit 0 => NULL.
Zajímá mne ale, jestli jde napsat dotaz, který by kýžené info vrátil přímo.

Předem díky.
ahoj
Profil *
SUM(zobrazit) as zobrazene ?
Taps
Profil
nethor:
moc nerozumím tomu , co požaduješ. Pokud chceš zobrazit jen fotografie, které jsou zobrazeny tak viz níže
select 
count(id) as celkem , 
count(zobrazit) as zobrazene , 
count(id) - count(zobrazit) as skryte  
from  foto where zobrazeno='1'
nethor
Profil
ahoj:
SUM(zobrazit) as zobrazene
To mě taky napadlo, ale kdybych z nějakého důvodu potřeboval přidat možné hodnoty: 0,1 ,2,3 ...
začalo by to házet nesmysly.

Taps:
co požaduješ
Potřebuji vytáhnout údaje :
1. kolik je v db fotografií celkem,
2. kolik se zobrazuje
3. kolik je skrytých

Dotaz, který píšeš nevytáhne 1) a 3).
Tori
Profil
nethor:
Zkuste
SELECT `zobrazit`, COUNT(*) FROM `foto`
GROUP BY `zobrazit` WITH ROLLUP
Poslední řádek bude vždy celkový součet. Pokud chybí některá možnost zobrazení (např. nejsou žádné skryté fotky), ve výsledku ten řádek nebude.
nethor
Profil
Tori:
Perfektní, to je přesně ono.
Děkuju :-)

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0