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
pc5
post
Post #2





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

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


Cytat(nospor @ 2005-04-20 09:41:27)
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ę?

Dobrze, ale to przecież jest przypisanie tylko do tabeli Kategorie. Cały czas chodzi o to że mam np. wpisy

id nazwa_firmy kategoria_id podkategorie
0 Onet 5 (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?
1 Wp 5 (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?

itd. itd.

gdzie mam zdefiniowaną tabelę Kategorie a w niej tylko nazwy kategori i ich id, które są dodawane do pól w tabeli 'Wpisy' czyli

id nazwa_kategori
5 Portale
7 Wyszukiwarki
10 Rejestracja
11 Internet
12 e-mail
itd itd...

każdy wpis moze mieć tylko jedną kategorię główną z tabeli 'Kategorie', ale podkategori może mieć więcej. '?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ' oznacza własnie moją niewiadomą. Co tam wstawić? najrpościej id podkategori, czyli id kategori z tabeli 'Kategorie', ale problem polega na tym że skonstruować potem zapytanie i edytować podkategorie takiego wpisu może być ciężko.

Teoretycznie chce mieć w tym polu np. dla wpisu o id 0 z tabeli 'Wpisy' (czyli onet) podkategorie 6,12,11 i moze inne, a dla Wp, chce miec juz inne np. 10 11

Przepraszam jeżeli czegoś nie rozumiem i totalnie nie trafiam w sedno sprawy. Być może to jest rozwiązanie, ale jakoś nie wiem jak to wykorzystać. Cały czas jestem przekonany że w tabeli 'Kategorie', przez proponowane rozwiązanie, definiujemy na stałe co jest podkategorią czego itd, a tutaj zupełnie nie o to chodzi, każdy wpis ma swój system gdzie jest kategoria i różne podkategorie. Jest ciężko, ale dzieki za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
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: 27.12.2025 - 01:29