Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kategoria i podkategorie, jak to zrobić?
pc5
post
Post #1





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 10.03.2005

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


Witam ponownie!

Mój problem polega na tym że potrzebuję zrobić system przeglądania wpisów, z których każdy ma jakąś kategorie główną i podkategorie. Liczba kategori i podkategori jest dynamiczna, użytkownik sam sobie je definiuje.

PROBLEM :
Jak wstawić takie coś do bazy MySqla? Jak potem stworzyć zapytanie, w którym wybieramy wpisy z danej kategori lub podkategori? Głównie problem polega na tym że do bazy trzeba wstawić więcej niż 1 podkategorie.

Mam już kolumnę "Kategoria", myślałem nad stworzeniem drugiej kolumny "Podkategorie", ale co tam wstwaić? Stringi nazw kategori oddzielone przecinkami, potem ewentualnie rozbijać to przy użyciu funkcji expolde z php? Cały czas rozbijam się o to że w 1 kolumnie może być własnie te pare podkategori.

Niestety nie mogę dodać sobie komumn "Podkategoria_1", "Podkategoria_2" itd.

Myślałem nad typem enum... ale to chyba nie zda egzaminu.

Moja pierwsza propozycja jest taka :
Nazwy kategori zapisac jako string, rozdzielone przecinkami, kazda nazwa bedzie miala swoj znak konca i poczatku stringu, tzn. zapis bedzie mniej wiecej taki :
@nazwa kategori 1@, @nazwa kategori 2@... itd gdzie znaki @ to poczatek i koniec stringu. Potem dajemy tylko wyszukiwanie przez SELECT i w WHERE dajemy 'Podkategorie' LIKE '@%nazwa kategori szukanej%@'. Może nawet obejdzie się bez %.

Jakieś pomysły?

Ten post edytował pc5 19.04.2005, 21:00:09
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




W rozwiązaniu co Ci podałem dla danej kategorii może istnieć nawet i milion podkategorii i to nie stanowi problemu.

Każda kategoria ma swój unikalny ID. On nic nie mówi o kategori czy podkategorii.
Dopiero gdy masz ustawiony PARENT, to wiesz, że dana kategoria jest podkategorią kategorii o ID w PARENT.
przykład (tabela kategoria):
Cytat
ID | NAME | PARENT
1  | KAT1  | null
2  | PKAT1| 1
3  | PKAT2| 1
4  | KAT2  | null
5  | PKAT3| 4
6  | PKAT4| 4


KAT1
-----PKAT1
-----PKAT2
KAT2
-----PKAT3
-----PKAT4

Rozjaśniło się trochę?
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: 28.12.2025 - 00:38