samoodwolujace sie tabele

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
szepiet
Posty: 12
Rejestracja: wt wrz 14, 2004 3:50 pm

samoodwolujace sie tabele

Post autor: szepiet »

witam tworze aplikacje bazodanaowa i projekt bazy przewiduje tabele samoodwolujaca sie do siebie, a mianowicie
[sql]
CREATE TABLE Kategorie(
idKategorii int IDENTITY (1, 1) NOT NULL PRIMARY KEY
nazwa varchar(30) NOT NULL ,
idNakategorii int NOT NULL
)
[/sql]
pole idKategorii wskazuje na kolejny wiersz w bazie (klucz glowny) natomiast pole idNakategorii wskazuje na nadkategorie, moje pytanie jest następujące jak wyświetlić cala droge od kategorii glownej do jakiejs wybranej przez uzytkownika kategorii, baza to MS SQL Server ale to nie ma wiekszego znaczenia, TIA pozdrawiam
phpIker
Nowy
Nowy
Posty: 182
Rejestracja: śr lis 02, 2005 9:28 pm
Lokalizacja: Kraków

Re: samoodwolujace sie tabele

Post autor: phpIker »

Jak masz tylko dwa poziomy kategorii to wystarczy, że wyświetlisz pod kategorię i pobierzesz nazwę kategorii wyższej.
Dwa poziomy - kategoria główna/pod kategoria
Tu nie będe się rozpisywał bo nie ma sensu...

Natomiast jak masz więcej niż dwa poziomy
Więcej niż dwa poziomy - kategoria główna/pod kategoria/pod pod kategoria
To przyszedł mi do głowy bardzo prosty pomysł:
Zapisujesz do zmiennej np. zmiennej sesji jak się user porusza tj. wchodzi do kategorii X to do zmiennej dodajesz X, natomiast logicznie gdy wyjdzie z tej kategorii to usuwasz X ze zmiennej no i wyświetlasz tą zmienną. Mam nadzieje, że mnie rozumiesz.
Najlepiej żebyś stworzył tablicę i potem dodawał do niej elementy array_push();

Oczywiście na to są setki innych rozwiązań, ale myśle, że to by było ok zarówno pod względem szybkości wykonywania jak i jego prostocie.

pozdrawiam.
ODPOWIEDZ