Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]/[mysql]/[js] jak zrobić wielopoziomowe kategorie produktow i menu do ich obsługi
noels
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 16.01.2007
Skąd: Dąbrowa Górnicza

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


Witam (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif)


Pisze skrypt sklepu internetowego, zależy mi na tym aby sklep obsługiwał wielopoziomowe kategorie tzn np:

SPRZĘT AGD ---|
.......................|-miksery
.......................|-pralki---|
.....................................|-ładowane od góry
.....................................|-ładowane od przodu


mój pomysł na tabele w bazie odpowiedzialna za przechowywanie informacji o kategoriach jest następujący:

  1. CREATE TABLE kategorie
  2. (id_kategorii int UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
  3. id_kategorii_nadrzednej int UNSIGNED NOT NULL,
  4. nazwa char(100) NOT NULL,
  5. opis text NOT NULL);


tabela przechowujaca informacje o produktach:

  1. CREATE TABLE produkty
  2. (id_produktu int UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
  3. id_producenta int UNSIGNED NOT NULL,
  4. id_kategorii int UNSIGNED NOT NULL,
  5. id_stawki_vat int UNSIGNED NOT NULL,
  6. nazwa char(100) NOT NULL,
  7. numer_katalogowy char(15) NOT NULL,
  8. opis text NOT NULL,
  9. widoczny tinyint(1) UNSIGNED NOT NULL,
  10. nowosc tinyint(1) UNSIGNED NOT NULL,
  11. cena double(7,2) UNSIGNED NOT NULL,
  12. waga int(2) UNSIGNED NOT NULL,
  13. zdjecie char(50));


problem pojawia sie przy próbie stworzenia menu ktore takze musi byc wielopoziomowe, a przedewszystkim dynamiczne
tzn. musi tworzyc sie automatycznie na podstawie informacji pobranych z bazy danych.
Udało mi się znaleźć pewne gotowe menu lecz nie potrafie poradzić sobie z jego
tworzeniem na podstawie automatycznie pobranych informacji z bazy.

kod menu i jego dokładny opis znajduje się pod adresem MENU

nie będę go tu wklejał bo jest dosyć obszerny.

Problem tkwi w napisaniu skryptu który wygeneruje kod korzystając z informacji zapisanych w bazie wg wzoru:

  1. <dl id="menu0">
  2. <dt>Sprzęt AGD</dt>
  3. <dd>
  4. <dl>
  5. <dt>Miksery</dt>
  6. <dt>Pralki</dt>
  7. <dd>Ładowane od góry</dd>
  8. <dd>Ładowane od przodu</dd>
  9. </dl>
  10. </dd>
  11. </dl>


Domyślam się że trzeba skorzystać z jakiś pętelek lecz nie mam pojęcia jak to zrobić.

Może macie jakieś inne pomysły na strukture bazy bądź też samego menu chodzi mi poprostu aby
udało mi się napisać skrypt sklepu z wielopoziomowymi kategoriami i menu do ich przeglądania.

Z góry dziękuję za wszelkie porady.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
noels
post
Post #2





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 16.01.2007
Skąd: Dąbrowa Górnicza

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


Dziekuje za zainteresowanie i podsuniecie swojej koncepcji, przeanalizowałem to co napisałes i doszedlem do pewnych wnioskow mianowice.

Wyglad tabeli wypelnionej danymi przy moim zalozeniu:

TABELA KATEGORIE

------------------------------------------------------------------
|id_kategorii|id_kategorii_nadrzednej|nazwa |opis|
------------------------------------------------------------------
|1 |0 |SPRZĘT AGD| |
|2 |1 |MIKSERY | |
|3 |1 |PRALKI | |
|4 |3 |Ład od góry | |
|5 |3 |Ład od przod| |
------------------------------------------------------------------

Wygląd tabeli wypełnionej danymi przy twoim założeniu:

TABELA KATEGORIE

------------------------------------------------------------------
|id_kategorii|glebokosc_menu |nazwa |opis|
------------------------------------------------------------------
|1 |0 |SPRZĘT AGD| |
|2 |1 |MIKSERY | |
|3 |1 |PRALKI | |
|4 |2 |Ład od góry | |
|5 |2 |Ład od przod| |
------------------------------------------------------------------

do tego momentu jest ok ale jezeli postanowimy dodac jeszcze chocby jeden poziom zerowy np. SPRZET RTV ktory bedzie poczatkiem nowego drzewka u Ciebie wystapi problem bo kategoria SPRZET RTV przyjmie glebokosc "0" i jezeli dodamy jej jakas podkategorie np: TELEWIZORY i ta podkategoria przyjmie zgodnie z Twoim zalozeniem wartosc glebokosc = "1" skad bedziemy wiedziec kogo dzieckiem sa MIKSERY, PRALKI, TELEWIZORY czy sa to dzieci SPRZETU AGD czy RTV u mnie taki problem nie wystapi bo kategoria SPRZET RTV przyjmie id_kategorii = 6, id_kategorii nadrzednej = 0 a jej dzieci przyjma kolejne id_kategorii natomiast id_kategorii_nadrzednej beda przyjmowac = 6 i bedzie wiadomo czyimi sa dziecmi.

Widze ze nawet moja koncepcja mogla by dzialac ale jak wygenerowac dla niej menu (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ? to jest dla mnie problem....

Tam pod tym linkiem prowadzacym do strony z MENU o którym wspominam jest naprawde dobry opis i wg niego mozna tworzyc nieskonczone struktury i glebokosci ja przedstawiajac tu schemat zawezilem go do 1 poziomu 0 st, 2 poziomow 1 st i 2 poziomow 2 stopnia ale mozna je dowolnie rozbudowywac moze jesli przeczytasz to pomoze Ci to w wymysleniu czegoas aby mi pomoc generalnie problem lezy napisaniu skryptu generujacego takich pare znacznikow HTML wg ponizszego schematu

  1. <dl id="menu0">
  2. <dt>Nagłówek 1</dt>
  3. <dd>
  4. <dl>
  5. <dt>Nagłówek 1.1</dt>
  6. <dd>
  7. <dl>
  8. <dt>Nagłówek 1.1.1</dt>
  9. <dd>Element 1.1.1.1</dd>
  10. <dd>Element 1.1.1.2</dd>
  11. <dd>Element 1.1.1.3</dd>
  12. <dt>Nagłówek 1.1.2</dt>
  13. <dd>Element 1.1.2.1</dd>
  14. <dd>Element 1.1.2.2</dd>
  15. <dd>Element 1.1.2.3</dd>
  16. </dl>
  17. </dd>
  18. <dt>Nagłówek 1.2</dt>
  19. <dd>Element 1.2.1</dd>
  20. <dd>Element 1.2.2</dd>
  21. <dd>Element 1.2.3</dd>
  22. </dl>
  23. </dd>
  24. <dt>Nagłówek 2</dt>
  25. <dd>
  26. <dl>
  27. <dt>Nagłówek 2.1</dt>
  28. <dd>Element 2.1.1</dd>
  29. <dd>Element 2.1.2</dd>
  30. <dd>Element 2.1.3</dd>
  31. <dt>Nagłówek 2.2</dt>
  32. <dd>Element 2.2.1</dd>
  33. <dd>Element 2.2.2</dd>
  34. <dd>Element 2.2.3</dd>
  35. </dl>
  36. </dd>
  37. </dl>

Jezeli zle mysle co do Twojej koncepcji, prosze popraw mnie. Moze wspolnie cos wymyslimy Tobie z tego co piszesz tez bedzie potrzebne takie rozwiazanie.

Ten post edytował noels 12.07.2007, 12:54:09
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: 17.10.2025 - 10:24