Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Nielimitowana Ilosc Kategorii.
telepawel
post
Post #1





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 11.05.2003

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


Witam,

Od 2 godzin siedze na rozwiazaniem dla systemu katalogow php + mysql.

Mam zapisane kategorie w bazie mysql w postaci
1_2_3 (np zupy w proszku grzybowe)
1 (zupy wszystkie)
1_4 (zupy o smaku owocow lesnych)
2_3 (warzywa zielone)
2 (warzywa wszystkie)
jako ID.

Kazdy znak _ to przejscie do podkategorii.
I teraz jak to zrobic aby skrypt wyslwietlal dane kategorie wg. glebokosci ?
Prawidlowo powinno byc:
1 (zupy wszystkie)
-> 1_2_3 (np zupy w proszku grzybowe)
-> 1_4 (zupy o smaku owocow lesnych)
2 (warzywa wszystkie)
2_3 (warzywa zielone)
itd.

Prosze o pomoc poniewaz jestem w martwym punkcie.

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
orson
post
Post #2





Grupa: Zarejestrowani
Postów: 548
Pomógł: 2
Dołączył: 19.07.2003

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


witam ...

to jest copy and paste z php ...
  1. SELECT DISTINCTROW t1. *, t2.pr_verify_date, COUNT( t2.pr_name ) AS num
  2. FROM categories AS t1 LEFT JOIN products AS t2 USING ( cat_id )
  3. WHERE t1.cat_idl > '.round($_GET['id'],10)*.' AND t1.cat_id < '.($_GET['id']+(10/pow(100,$_GET['level'])))**.'
  4. GROUP BY t1.cat_id

dla takich tabel:
  1. #
  2. # Struktura tabeli dla `categories`
  3. #
  4.  
  5. CREATE TABLE `categories` (
  6. `cat_id` decimal(11,10) NOT NULL DEFAULT '0.0000000000',
  7. `group_id` smallint(5) UNSIGNED NOT NULL DEFAULT '0',
  8. `cat_name` char(20) NOT NULL DEFAULT '',
  9. PRIMARY KEY (`cat_id`)
  10. ) TYPE=MyISAM AUTO_INCREMENT=129 ;
  11.  
  12. # --------------------------------------------------------
  13.  
  14. #
  15. # Struktura tabeli dla `products`
  16. #
  17.  
  18. CREATE TABLE `products` (
  19. `pr_id` smallint(5) UNSIGNED NOT NULL AUTO_INCREMENT,
  20. `group_id` smallint(5) UNSIGNED NOT NULL DEFAULT '0',
  21. `cat_id` decimal(11,10) NOT NULL DEFAULT '0.0000000000',
  22. `pr_name` char(50) NOT NULL DEFAULT '',
  23. `pr_prize` decimal(10,2) NOT NULL DEFAULT '0.00',
  24. `pr_add_by` smallint(5) UNSIGNED NOT NULL DEFAULT '0',
  25. `pr_verify_by` smallint(5) UNSIGNED DEFAULT NULL,
  26. `pr_add_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  27. `pr_verify_date` datetime DEFAULT NULL,
  28. `pr_amount` smallint(5) UNSIGNED NOT NULL DEFAULT '1',
  29. PRIMARY KEY (`pr_id`)
  30. ) TYPE=MyISAM AUTO_INCREMENT=1425 ;

i teraz male wyjasnienia:
* - id przesylany po url pozwala na wyswietlanie tylko podrzednych kategorii .. czyli jak klikniemy to strona sie odswieza i tym samym zapytaniem wyciagamy tylko kategorie podrzedne
** - level jest przesylany po url i pomaga [mozna to wyliczac przez sql - chyba - ale tak jest szybciej ... sluzy do tego co wyzej ... ograniczania wyswietlanych kategorii ...
wyliczany jest przez:
  1. <?php
  2. $level = strpos($array['cat_id'],'00')/2; //glebokosc danej kategorii
  3. ?>

wyswietlanie zrobione jest w 1 przebiegu petli przez taki wiersz:
  1. <?php
  2. $return .= '<h'.$level***.'><a href='core.php?mode=offer&action=list_prod&id='.$array['cat_level'].'&level='.$level.''> '.$array['cat_name'].' </a> ['.$array['num'].'] </h'.$level.><br>
  3. ?>

*** - dzieki level'owi nie trzeba dawac zadnych ifow/switchow ... zamiast h mozna dac class, id, array [indeks odpowiada nazwie - mainCat, 1stSubCat i inne] kolejna oszczednosc ... (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Cytat
no ok spoko sposob orson tylko po co ta liczba przed przecinkiem (kropka) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

bo jakby nie bylo to to musialby byc string ... a tak jest liczba (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

jak sa jeszcze jakies pytania/problemy to piszcie ...

ps. to jest z projektu testowego ... nie chce mi sie szukac finala [ mam gdzies na cd wypalone] wiec kod moze nie dzialac i nie jestem pewien czy w finalu czegos nie zmienilem ale ten kod po wzgledem ogolnym jest dobry ... w finalu pewnie tylko kosmetyka ...

pozdrawiam
Go to the top of the page
+Quote Post

Posty w temacie
- telepawel   Nielimitowana Ilosc Kategorii.   20.07.2004, 17:19:23
- - invx   z tego co zrozumialem po prostu zastosuj do katego...   20.07.2004, 17:36:25
- - hwao   Moze sie przyda: http://amnesty.scene.pl/~szacool/...   20.07.2004, 17:44:19
- - telepawel   hwao...DZIEKUJE BARDZO!! Teraz wyglada to...   20.07.2004, 18:01:14
- - orson   witam ... mozesz tez zastosowac system ktory jest...   20.07.2004, 22:23:19
- - Pianandrill   Z drzewkami się aktualnie ścieram. Podoa mi się ar...   14.10.2004, 00:15:56
- - orson   witam ... [pod]kategorie usuwaja sie same: [SQL] ...   14.10.2004, 09:44:14
- - a79rtur   pozwólcie ze sie wtrące w skrypcie z ksiazki mam ...   14.10.2004, 11:18:19
- - Vengeance   no ok spoko sposob orson tylko po co ta liczba prz...   14.10.2004, 14:06:48
- - orson   witam ... to jest copy and paste z php ... [SQL]...   14.10.2004, 14:46:01
- - Vengeance   to czy final czy nie to akurat dla mnie malo wazne...   14.10.2004, 15:16:10
- - Pianandrill   Wydaje mi się, że mimo wszystko jest to zbyt skomp...   15.10.2004, 02:38:20
- - orson   witam ... hmm ... nie wiem jaki masz problem z pr...   15.10.2004, 08:34:00
- - Vengeance   hmm no cos tam naskrobalem. Poniewaz jest to moje ...   19.10.2004, 13:30:22
- - orson   witam ... jestem aktualnie zupelnie bez czasu wie...   19.10.2004, 21:13:03
- - Vengeance   no więc: klasa Trees: + działanie: http://vengean...   20.10.2004, 17:38:00
- - nediam   no dobra a jak w takim razie dodac jakis elment do...   23.10.2004, 15:01:07
- - bendi   Mielismy taka dyskusje na WebHelpie, http://forum....   25.10.2004, 11:26:32
- - orson   witam ... nie mialem za duzo czasu zeby sie jej p...   28.10.2004, 19:40:12
- - nediam   Cytat(orson @ 2004-10-28 20:40:12)po swietach...   28.10.2004, 21:15:09
- - Vengeance   Jeśli chodzi o to, aby do testowego drzewka które ...   28.10.2004, 21:20:26
- - orson   Cytat(nediam @ 2004-10-28 21:15:09)a kto powi...   28.10.2004, 23:26:42
- - Vengeance   tak jak mówiłem sama obłsuga drzewek działa wszędz...   30.10.2004, 18:59:38
- - herbatniczek   ccześć, jestem w trakcie tworzenia sklpeu komputer...   3.11.2004, 16:00:01
- - orson   witam ... Cytatkarty A to liczba 1. Zaś A.A.D.A to...   4.11.2004, 09:00:59
- - Thaal   witam... własnie niedawno bawiłem się czymś podob...   4.11.2004, 11:01:41
- - Vengeance   a ja mam pytanie czy wiesz ile to zapytan generuje   4.11.2004, 15:57:11
- - Thaal   Cytat(Vengeance @ 2004-11-04 16:57:11)a ja ma...   4.11.2004, 16:29:28
- - orson   witam ... po przemysleniu dzis problemu z produkt...   4.11.2004, 22:12:18
- - nediam   Vengeance: twoj sposob nie dziala chyba tak jak po...   14.11.2004, 20:30:59
- - Vengeance   o dzieki za cynk. jak znajde chwile checi to to sp...   14.11.2004, 20:39:45
- - orson   witam ... Vengeance poszedl na latwizne i uzyl pr...   14.11.2004, 22:03:52
- - nediam   orson: o to wlasnie chodzilo thx ale mam taki maly...   15.11.2004, 14:24:41
- - orson   witam ... Cytatczy nie powinno byc : a dziala ja...   15.11.2004, 15:13:30
- - nediam   orson nie wiem o co ci chodzi bo to co napisalem j...   15.11.2004, 21:24:05
- - orson   witam ... pamietam ze mialem z tym problem ... wy...   15.11.2004, 22:00:05
- - Vengeance   ok poprawiłem. "dobra" ( bo rozwojowa :]...   15.11.2004, 22:39:47


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 Aktualny czas: 6.10.2025 - 20:24