Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zliczanie pozycji..., jak to ugryzść?
Fallout
post
Post #1





Grupa: Zarejestrowani
Postów: 154
Pomógł: 0
Dołączył: 17.12.2003
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


Witam,

mam problem ze zliczeniem ilości "linków" w "kategoriach"

wyciąg z bazy:

  1. CREATE TABLE cat (
  2. cat_id Int NOT NULL AUTO_INCREMENT,
  3. cat_root Int NOT NULL,
  4. cat_name Varchar(15) NOT NULL,
  5. cat_desc Varchar(80),
  6. cat_show Bool,
  7. UNIQUE (cat_id),
  8. PRIMARY KEY (cat_id)) ENGINE = MyISAM;
  9.  
  10. CREATE TABLE links (
  11. link_id Int NOT NULL AUTO_INCREMENT,
  12. cat_id Int NOT NULL,
  13. link_date Date NOT NULL,
  14. link_title Varchar(25) NOT NULL,
  15. link_desc Varchar(100),
  16. link_www Char(60) NOT NULL,
  17. link_ok Bool NOT NULL,
  18. UNIQUE (link_www),
  19. PRIMARY KEY (link_id)) ENGINE = MyISAM;


i teraz zliczam ilosc linkow dla danej kategorii :

  1. <?php
  2.  
  3. {
  4. $sql = "SELECT Count(*) FROM links WHERE cat_id = $id";
  5. $this->db->DoSql($sql);
  6. return mysql_result($this->db->wynik,0,0);
  7. }
  8.  
  9. ?>


a taka funkcja zliczam ilosc kategorii w danej kategorii :

  1. <?php
  2.  
  3. function Count($id)
  4. {
  5.  if($id==0)
  6. $sql = "SELECT Count(*) FROM cat WHERE cat_root = 0";
  7. else
  8. $sql = "SELECT Count(*) FROM cat WHERE cat_root = $id";
  9.  
  10. $this->db->DoSql($sql);
  11. return mysql_result($this->db->wynik,0,0);
  12. }
  13.  
  14. ?>


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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Dla pewnosci wklejam kod wyswietlajacy kategorie :

  1. <?php
  2.  
  3. function ShowCat($id)
  4. {
  5. if($id==0)
  6. $sql = "SELECT * FROM cat WHERE cat_root = 0";
  7. else
  8. $sql = "SELECT * FROM cat WHERE cat_root = $id";
  9.  
  10. $this->db->DoSql($sql);
  11. $wynik = $this->db->wynik;
  12.  
  13. while($w = mysql_fetch_array($wynik))
  14. {
  15. $cat_id = $w['cat_id'];
  16. $cat_root = $w['cat_root'];
  17. $cat_name = $w['cat_name'];
  18. $cat_desc = $w['cat_desc'];
  19.  
  20. echo $this->LinkIt($cat_id,$cat_root);
  21. echo $cat_name."</a> <b>(</b>".$this->Count($cat_id)."/".$this->CountLinks($cat_id)."<b>)</b><br>";
  22. }
  23. }
  24.  
  25. ?>



z góry Dziękuję i pozdrawiam
Marcin
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 23:23