Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]kategoria i subkategoria
wpaski
post 4.11.2012, 14:14:03
Post #1





Grupa: Zarejestrowani
Postów: 206
Pomógł: 6
Dołączył: 25.12.2011

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


Witam, zastanawiam się jak poprawnie wykonać podział na kategorie i subkategorie, mam takie 2 tabele:
tabele wygladaja tak:
  1. CREATE TABLE IF NOT EXISTS `category` (
  2. `category_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `category_title` varchar(30) COLLATE utf8_polish_ci NOT NULL,
  4. `category_description` varchar(30) COLLATE utf8_polish_ci NOT NULL,
  5. PRIMARY KEY (`category_id`)
  6. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=2 ;
  7.  
  8. CREATE TABLE IF NOT EXISTS `subcategory` (
  9. `subcategory_id` int(11) NOT NULL AUTO_INCREMENT,
  10. `subcategory_title` varchar(30) COLLATE utf8_polish_ci NOT NULL,
  11. `subcategory_description` varchar(30) COLLATE utf8_polish_ci NOT NULL,
  12. `category_id` int(11) UNSIGNED NOT NULL,
  13. PRIMARY KEY (`subcategory_id`),
  14. KEY `category_id` (`category_id`)
  15. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=13 ;
  16.  
  17.  




i zapytanie do nich:
  1. SELECT subcategory.subcategory_title, category.category_title, category.category_id FROM category INNER JOIN subcategory ON category.category_id = subcategory.category_id;



cel jest taki żeby, pobrać kategorię, następnie mają sie pobrać do niej wszystkie subkategorie, potem kolejna kategoria i kolejne subkategorie, tak w kółko aż do ostatniej subkategorii w ostatniej kategorii, z tym, że nie wiem jak dobrze to napisać (prosiłbym o jakieś wskazówki, przykladowy kod), i czy powyższe zapytanie jest optymalne czy można to inaczej zrobić?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
wujek2009
post 4.11.2012, 16:29:39
Post #2





Grupa: Zarejestrowani
Postów: 350
Pomógł: 31
Dołączył: 23.05.2010

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


Hm. Właściwie można ograniczyć się do jednej tabeli np. "categories" o stukturze:
Kod
| id | name | description | parent_id |


Gdzie kolumna "parent_id" będzie przyjmować albo wartości tekstowe (string) albo wartość NULL - w przypadku gdy jest tylko kategoria główna (czyli kategoria bez podkategorii :-)). Natomiast wartość tekstowa to będzie tekst w stylu "1.23.15" - metoda na IP (gdzie 1 oraz 23 i 15 - to ID kategorii z zaglębienia).

Ogólnie o metodzie drzewek bądź metodzie IP - jak zwał tak zwał możesz poszukać na forum, ponieważ ten wątek został już omówiony tutaj.
Np. http://forum.php.pl/index.php?showtopic=107322 (w pierwszym poście są linki do artykułów)

+ do tego cache, aby za każdym razem nie pobierać całej listy
+ w cache trzymać już posortowane tablice aby w kółko tego samego nie filtrować

i będzie OK.

Ten post edytował wujek2009 4.11.2012, 16:30:47
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: 14.08.2025 - 09:19