Kategorie i podkategorie (drzewo)

2014-08-18 10:40:12 Post #1 gość_xxdrago

 
Cześć, od jakiegoś czasu zabrałem się za pisanie systemu ogłoszeń, zastanawiam się jak najlepiej i optymalnie napisać baze danych z kategoriami podkategoriami i tak dalej... czyli coś w rodzaju takiego drzewa tak jak jest tutaj:

http://olx.pl/motoryzacja/kategorie/ - tutaj mam wszystkie kategorie a jak kliknę na przykład w motocykle http://olx.pl/motoryzacja/motocykle-skutery/ to mam jeszcze:

Chopper - Cruiser 5 086
Cross 3 488
Motorower 6 625
Quad - ATV 3 742
Skuter 16 615
Sportowy 7 159
Szosowo - Turystyczny 10 685
Pozostałe Motocykle i Skutery 2 864

i tak dalej... Wystarczy mi po prostu tabela z:
id, nazwa_kategorii, rodzic_id

i pierwsza kategoria po prostu będzie dla przykładu "root"? następne główne kategorie mają po prostu id roota a te podkategorie główne będą miały id głównych kategorii? troszkę sie zaplątałem i nie wiem czy to do końca będzie chodzić jak będę chciał W dobrym kierunku idę?

2014-08-18 10:51:49 Post #2 nospor

 
Musisz zastosować poprostu strukture drzewiastą. Pelno tego w necie. Poszukaj, np. drzewka IP

Struktura, ktorą zaproponowales jest za prosta i w pewnym momencie przysporzy ci kłopotów.

2014-08-18 11:09:14 Post #3 gość_xxdrago

 
Znalazłem jeszcze coś na temat:
http://blog.bexlab.pl/struktura-drzewiasta-w-bazie-danych-odc-2-konstrukcja-drzewa-typu-nested-set/383/ (Konstrukcja drzewa typu nested set)

Ale wydaje mi się , że metoda ip jest prostsza:
http://blog.mwojcik.pl/2008/02/17/drzewa-kategorii-w-sql-i-php-metoda-ip/

2014-08-18 11:12:27 Post #4 nospor

 
Ja od lat uzywam drzewek IP (choc gdy zaczalem tego uzywac to nawet nie wiedzialem ze tak to sie nazywa gdyz sam doszedlem do wypracowania tej metody) i nie mialem z nią nigdy żadnych problemow

2014-08-18 20:00:14 Post #5 gość_xxdrago

 
Ok, dzięki na razie jeszcze niem mam problemów. Jeszcze mam takie pytanie zabrałem sie właśnie za nauke frameworka Yii i mam pytanie odnośnie wyświetlania danych, czy można je normalnie wyświetlać w ten sposób:

File: KategorieController.php

<?php

class KategorieController extends Controller
{
	public function actionIndex()
	{
       // Wyswietla glowne kategorie
		
		
		
		
		// Laczymy sie z baza danych
		$connection=Yii::app()->db;
		
		$sql = 'SELECT id, name FROM  `tbl_kategorie` WHERE  `parentID` =0 LIMIT 0 , 30';
        $dependency = new CDbCacheDependency('SELECT MAX(update_time) FROM tbl_kategorie');
        $rows = Yii::app()->db->cache(3600, $dependency)->createCommand($sql)->queryAll();

		
		$this->render('glowne_kategorie',
		array(
		'kategorie' => $rows,
		'tytul_strony' => 'Wszystkie kategorie')
		);
		
		
	}
    public function actionPokaz($id,$id2)
	{
	    // Wyswietla podkategorie dla danej kategorii
	
	
	}
	
}


i plik do wyświetlania danych:
<h2>Główne kategorie</h2>
<?php


foreach ($kategorie as &$wartosc) {
   echo $wartosc['name'];   
}


Chodzi mi o to czy można mieszać w widoku kod php z html, czy wyświetla się go w jakiś inny sposób?

2014-08-19 08:41:06 Post #6 nospor

 
Nie znam Yii ale z tego co widzę w google to tak właśnie się robi widoki w Yii, wiec masz ok. No ale takie rzeczy to już raczej sam na podstawie tutkow Yii powinieneś wiedzieć.

2014-10-19 20:03:10 Post #7 gość_gsdev

 
Można mieszać php i html w widokach. Jako że są to pliki php tym bardziej Yii generuje z nich strukturę html w assets. Co więcej - w widoku możesz renderować kolejny widok np. formularza. To powinieneś po pierwszej instalacji zauważyć chyba że do tej pory skupiłeś się jak @nospor pisał na tutkach.

Odpowiedz

Ostatnio komentowane

  1. Mysql - FAQ Paweł
  2. Pager 2.5.1 oraz EPa... Na szybko2
  3. Pager 2.5.1 oraz EPa... Sławek
  4. Mysql - FAQ Piotr
  5. Liczba dni roboczych Na szybko2
  6. Liczba dni roboczych Naszybko
  7. Klasa widoku nospor

Skrypty użytkowników

  1. Klasa obsługi szablo... Lirdoner
  2. Sekcje user76
  3. Klasa walidująca for... user76
  4. Licznik Gości online korey
  5. Form Builder Comandeer
  6. Dynamiczny licznik z... korey
  7. Captcha Comandeer