Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Počet albumů z databáze

Ahoj všem,

mám tabulku v databázy pojmenovanou zahranicni.
V ní jsou sloupce: Title,Artist,Albumartist,Genre,Album,Track,Year,Le ngth,Composer,Filename,Publisher,Contentgroup,Web, Discnumber,datum

Databáze obsahuje momentálně 36868 řádků, což jsou jednotlivé písně.
Potřeboval bych z tabulky dostat počet albumů,
Problém je v tom že název albumu se vyskytuje třeba u 10 skladeb, záleží na tom kolik dané album obsahuje skladeb.
Jak z tabulky dostat přesný počet albumů aby to počítalo tak jak má, takže pokud je v tabulce 12 skladeb z albumu aby ho to počítalo jako jedno. A pak zobrazilo přesný počet albumů z celé tabulky?
Děkuji za každou radu

Předmět Autor Datum
Špatný návrh databáze, alba mají být v jedné tabulce, skladby ve druhé. select count(distinct Album…
Wikan 08.02.2013 16:36
Wikan
Díky, ještě mám problém v tom že se název alba někdy opakuje ovšem už je pod jiným interpretem. Nyní…
Gizzer 08.02.2013 17:56
Gizzer
To je právě tím chybným návrhem. Podle čeho se dá jasně identifikovat konkrétní album?
Wikan 08.02.2013 18:00
Wikan
Podle Contentgroup
Gizzer 08.02.2013 18:01
Gizzer
Tak do toho dotazu dej Contentgroup místo Album.
Wikan 08.02.2013 18:01
Wikan
Asi jsem to špatně napsal, Název albumu je přesně definovaný ve sloupci Album ale přesně definovat s…
Gizzer 08.02.2013 18:14
Gizzer
distinct Album, Contentgroup Sice se opakuju, ale: kdyby jsi měl normální návrh databáze, tak bys t…
Wikan 08.02.2013 18:19
Wikan
Teď už to vím ale mám tam už přes 39000 řádků a předělávat to znovu se mi opravdu nechce. Jdu to zk…
Gizzer 08.02.2013 18:20
Gizzer
39000 řádků je prkotina. Procedura, která by to rozházela do správných tabulek, by trvala přinejhorš…
Wikan 08.02.2013 18:25
Wikan
Samozřejmě pro toho kdo tomu rozumí tak ano. Jinak díky funguje to. Přeju hezký večer.
Gizzer 08.02.2013 18:26
Gizzer
Chtěl bych poprosit ještě o jednu radu. Tímto kódem si zobrazuji interpreti: $query = "SELECT Cont…
Gizzer 08.02.2013 19:39
Gizzer
SELECT Contentgroup, count(distinct Album, Contentgroup) as "pocet alb"... Edit: teraz som si všimo…
pme 08.02.2013 19:52
pme
Nee group by, jinak díky pomohl si mi
Gizzer 08.02.2013 20:21
Gizzer
Group by tam má byť, ale ASC,DESC sa používa pri klauzule order by...
pme 08.02.2013 20:25
pme
Jo to je pravda nemá to tam být. Dík. poslední
Gizzer 08.02.2013 20:45
Gizzer

Asi jsem to špatně napsal, Název albumu je přesně definovaný ve sloupci Album ale přesně definovat se dá podle interpreta který je ve sloupci Contentgroup.

Protože se může stát že je název alba:
Greatest Hits a toto album nazpívali dvá různý interpreti.
Jedno třeba Johnny Cash a druhý třeba Don Williams.
Ale ten kód co jste mi dal, tak jakmile to najde ve sloupci Album stejný název tak ho to sečte jako jedno což je špatně když každé to album nazpíval někdo jiný.
Dá se toto nějak ošetčit a správně sečíst počet alb v databázy?

Chtěl bych poprosit ještě o jednu radu.

Tímto kódem si zobrazuji interpreti:

$query = "SELECT Contentgroup
FROM `zahranicni`     
group by Contentgroup ASC";
$result = mysql_query($query) or die(Mysql_error());
While($results=MySQL_Fetch_Assoc($result)) 

Potřeboval bych k těm interpretům zobrazit počet alb.
Interpret=Contentgroup

Byli by jste tak hodní a poradili mi nebo mi to napsali?
Budu velice vděčný.

Zpět do poradny Odpovědět na původní otázku Nahoru