mam problem ze zliczeniem ilości "linków" w "kategoriach"
wyciąg z bazy:
CREATE TABLE cat ( cat_id Int NOT NULL AUTO_INCREMENT, cat_root Int NOT NULL, cat_name Varchar(15) NOT NULL, cat_desc Varchar(80), cat_show Bool, UNIQUE (cat_id), PRIMARY KEY (cat_id)) ENGINE = MyISAM; CREATE TABLE links ( link_id Int NOT NULL AUTO_INCREMENT, cat_id Int NOT NULL, link_date Date NOT NULL, link_title Varchar(25) NOT NULL, link_desc Varchar(100), link_www Char(60) NOT NULL, link_ok Bool NOT NULL, UNIQUE (link_www), PRIMARY KEY (link_id)) ENGINE = MyISAM;
i teraz zliczam ilosc linkow dla danej kategorii :
<?php { $sql = "SELECT Count(*) FROM links WHERE cat_id = $id"; $this->db->DoSql($sql); } ?>
a taka funkcja zliczam ilosc kategorii w danej kategorii :
<?php { if($id==0) $sql = "SELECT Count(*) FROM cat WHERE cat_root = 0"; else $sql = "SELECT Count(*) FROM cat WHERE cat_root = $id"; $this->db->DoSql($sql); } ?>
Moje pytanie brzmi:
Jak ułożyć zapytania SQL dla zliczania wszystkich podkategorii (takze z ich podkategoriami) oraz wszystkich linkow dla danej kategorii (i ich podkategorii)
gdyz narazie udaje mi sie zliczyc tylko 1 poziom w dol...
Przyklad
- 1 (4/4)
-- 1.1 - (link1,link2)
-- 1.2
-- 1.3 (link3)
--- 1.4 (link4)
mam nadzieje ze wyrazilem sie zrozumiale

<?php function ShowCat($id) { if($id==0) $sql = "SELECT * FROM cat WHERE cat_root = 0"; else $sql = "SELECT * FROM cat WHERE cat_root = $id"; $this->db->DoSql($sql); $wynik = $this->db->wynik; { $cat_id = $w['cat_id']; $cat_root = $w['cat_root']; $cat_name = $w['cat_name']; $cat_desc = $w['cat_desc']; } } ?>
z góry Dziękuję i pozdrawiam
Marcin