Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> drzewko - zliczanie
sumar
post 27.07.2004, 12:53:31
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 31.01.2004

Ostrzeżenie: (20%)
X----


Witam, mam taką funkcję

  1. <?php
  2.  
  3.  
  4. function display_children($parent, $level, $dbcategories, $dbstore) { 
  5.  $result = mysql_query(&#092;"SELECT ID, Name FROM $dbcategories WHERE IDpar='$parent'\"); 
  6.  
  7.  while ($row = mysql_fetch_array($result)) { 
  8.  
  9.  $ID = $row['ID'];
  10.  $query_count = mysql_query(&#092;"SELECT COUNT(ID) FROM $dbstore WHERE IDcat = '$ID'\");
  11.  $row_c = mysql_fetch_row($query_count);
  12.  $Count = $row_c[0];
  13.  echo str_repeat('&nbsp;',$level).&#092;"<a href=\"showcat.php?cat=\".$row['ID'].\"\">\".$row['Name'].\"($Count)<br>n\"; 
  14.  
  15.  display_children($row['ID'], $level+1, $dbcategories, $dbstore); 
  16.  } 
  17. }
  18.  
  19.  
  20. ?>


W bazie danych mam

  1. CREATE TABLE cat (
  2. ID int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. IDpar int(11) UNSIGNED DEFAULT '0',
  4. Name char(35) DEFAULT NULL,
  5. PRIMARY KEY (ID)
  6. ) TYPE=MyISAM;



No i wszystko fajnie chodzi, tylko że ten COUNT podaje wartość tylko przy kategoriach jakie są ostatnie w hierarchi. A mi chodzi o to, żeby zliczał wszystko.
Np. Jeśli jest kilka podkategorii w kategorii „komputery”, to żeby przy kategorii komputery pokazywał sumę wszystkich artykułów z danych podkategorii.

Czy wie ktoś jak to zrobić??
Go to the top of the page
+Quote Post
spenalzo
post 31.07.2004, 02:30:55
Post #2





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Jeżeli nie jest znana liczba poziomów, to będze ciężko zliczyć ilość podkategorii w samym mysql...


--------------------

Go to the top of the page
+Quote Post
lemming
post 31.07.2004, 11:23:55
Post #3





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: --
Skąd: Gdańsk

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


Niewiem czy jeszcze tego potrzebujesz ale ja mam tak
  1. <?php
  2.  
  3. function licz_produkty_w_kategori($kategoria) {
  4. global $db;
  5. $products_count = 0;
  6. $db->query(&#092;"SELECT count(*) AS total FROM produkty p, produkty_do_kategori p2k WHERE p.id=p2k.produkt_
    i
  7.  AND p.show_buyer='1' AND p2k.kategoria_id='$kategoria'\");
  8. $row = $db->fetch_row();
  9. $products_count += $row['total'];
  10.  
  11. $db->query(\"SELECT * FROM menu WHERE parent='$kategoria'\");
  12. $numrows = $db->num_rows();
  13. if ($numrows > 0) {
  14. while ($row = $db->fetch_row()) {
  15. $products_count += licz_produkty_w_kategori($row['id']);
  16. }
  17. }
  18. return $products_count;
  19. }
  20.  
  21. ?>

tworzysz sobie tabele produkty_do_kategori i tam dajesz 2 pola:
produkt_id (id produktu)
kategoria_id (id kategori)
i uzupełniasz przykładowo:
produkt_id | kategoria_id
1 | 1
2 | 1
3 | 2 (i np. 2 jest pod kategoria 1)

Ten post edytował lemming 31.07.2004, 11:25:59
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 23.06.2025 - 11:08