· 7 years ago · Nov 02, 2018, 10:28 AM
1CREATE TABLE IF NOT EXISTS `tbl_category` (
2 `Category_ID` int(11) NOT NULL AUTO_INCREMENT,
3 `Category_name` varchar(20) NOT NULL,
4 `Category_image` text NOT NULL,
5 PRIMARY KEY (`Category_ID`)
6) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ;
7
8/*
9 * Итак, Ñ Ð¸Ñхожу из того, что нужно вывеÑти примерно вот такое меню
10 *
11 *
12 * СредÑтва передвижениÑ
13 * Ðвтомобиль
14 * Легковой
15 * Седан
16 * Dodge
17 *
18 * ЕÑли да, то вÑÑ‘ очень проÑто:
19 *
20 * 1) в SQL добавлÑем поле category_parent, Ñо значением id родителÑ, или 0, еÑли Ñто конец
21 *
22 * Дальше, вÑÑ‘ что нужно, в текущей Ñтранице получить id поÑледней категории
23 * (допуÑтим, что Dodge => id=176)
24 *
25 * 2) пишем внешний вид
26 * */
27
28
29
30
31 /**
32 * @param array $data
33 * @param int $currentCatId => id поÑледней категории, от которой будем плÑÑать
34 * @return string
35 *
36 * Что должно быть в data
37 * $data = [
38 0 => [
39 'id' => 18,
40 'title' => "Грузовые",
41 'category_parent' => 12,
42 # .........
43 ],
44 1 => [
45 'id' => 19,
46 'title' => "Легковушки",
47 'category_parent' => 12,
48 # .........
49 ],
50 # ..........
51 ];
52 *
53 */
54
55 # переведу маÑÑив выше так, чтобы ключ запиÑи ÑоответÑтвовал id
56 $t = [];
57 foreach ($data as $k => $d){
58 $t[$d['id']]=$d;
59 }
60 function echoHtml($data,$currentCatId):string
61 {
62 $result = '';
63 $result.= $data[$currentCatId]['title'];
64 if($data[$currentCatId]['category_parent']!=0){
65 $result.=echoHtml($data,$data[$currentCatId]['category_parent']);
66 }
67 else{
68 $result.= $data[$currentCatId]['title'];
69 }
70
71
72 return $result;
73 }