Drzewka w PHP
1. Wprowadzenie
Artykuł zawiera prosty przepis jak zaimplementować drzewa w php.
2. Wstęp
Skrypt jest dość prosty, więc na pewno będzie wiele modyfikacji. Za które będę oczywiście wdzięczny. Bardzo ważną rzeczą jest fakt ze jest napisany strukturalnie a nie obiektowo. Nie wiem, czemu nie lubię obiektowego pisania, choć niewątpliwie ma wiele zalet. Przyczyna tego jest pewnie fakt ze wychowałem się na strukturalnych językach.
Z drzewkami spieram się już jakiś czas. A wczoraj po prostu usiadłem i napisałem wszystko od ręki.
3. Struktura bazy oraz podstawowe założenia
Do analizy wykorzystamy drzewko z artykułu rzSeattle o drzewkach.
0 0.SYSTEMY OPERACYJNE
/ \
1 1.LINUX 2.WINDOWS
/ \ / \
2. 3.SLACK 4.DEBIAN 5.NT 6.NO NT
/ \ / | \
3 7.WIN 2000 8.WIN XP 9.WIN 95 10.WIN 98 WIN ME
Podstawową rzeczą jest zastanowić się jak ma wyglądać baza danych.
Ja zrobiłem taka.
CREATE TABLE `foto_cat` (
`id` mediumint(100) NOT NULL auto_increment,
`name` varchar(255) NOT NULL default ”,
`url` varchar(255) NOT NULL default ”,
`parent` varchar(10) NOT NULL default ”,
`user` varchar(100) NOT NULL default ”,
`data` datetime NOT NULL default ‘0000-00-00 00:00:00′,
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
Wiadomo, co to jest id, name to nazwa katalogu. url to jest cala ścieżka od głównego katalogu. Parent to katalog nadrzędny. I na koniec data która dodaje z przyzwyczajenia a która może służyć do chociażby sortowania.
Trzeba przyjrzeć się dokładniej kolumnie url. Pierwsze katalogi maja wartość ‘0’
Format tej kolumny jest taki dla przykładu debiana będzie wyglądało tak:
0|1:LINUX a dla przykładu windowsa xp będzie cos takiego:
0|2:WINDOWS|5:NT
Czyli po pierwsze określa nie katalog docelowy tylko ten, w którym znajduje się katalog nas interesujący. I zawiera najpierw 0 potem id i nazwę katalogów. Oddzielanych ‘|’ a id i nazwę znakiem ‘:’. Mam nadzieje ze dosadnie wytłumaczyłem.