php無限分類

2023-01-12 01:03:03 字數 2347 閱讀 3454

無限分類

一. 父子id法

(1) 資料結構(族譜)

二三. | id | parent | name |

四五. | 1| 0 | 祖父 |

六七. | 2| 1 | 父親 |

**. | 3| 1 | 叔伯 |

一十一十一. | 4| 2 | 自己 |

一十二一十三. | 5| 4 | 兒子 |

一十四一十五. | 6| 5 | 孫子 |

一十六一十七. | 7| 2 | 姐妹 |

一十八一十九. | 8| 3 | 表親 |

二十二十一. | 9| 7 | 甥兒 |

二十二二十三. | 10 | 4 | 女兒 |

二十四二十五. | 11 | 10 | 外孫 |

二十六二十七. | 12 | 5 | 孫女 |

二十八二十九

三十求值:

1)、已知任一id,可以求得祖先id表

2)、已知任一id,可以求祖先id表(含自己)

3)、已知任一id,後代id表

3)、已知任一id,後代id表(含自己)

(2)php**

<?php

/***族譜

**以乙個例項演示簡單無限分類的演算法

**@copyrihgthentstudio,2008

*@author七月十五<[email=>

*@version$

*//**

*獲取祖先樹二維陣列,長幼逆序,不含己身

*@paramint$id己身所在id

*@returnarray

*/function_getforefathers($id)else

}/**

*獲取祖先樹二維陣列,長幼順序,含己身

*@paramint$id己身所在id

*@returnarray

*/functiongetforefathers($id)

/***獲取指定id的所有後代,不含指定id

*@parammixed$id指定id,有可能是array

*@returnarray所有後代id的一維陣列

*/function_getoffspring($id)

$id=implode(',',$id);

$sql="

select*

fromfamily

whereparentin(".$id.");";

$re=mysql_query($sql);

if(mysql_num_rows($re))

$ids=array_merge($ids,_getoffspring($ids));

return$ids;

}else

}/**

*獲得指定id的所有後代,含指定id

*@parammixed$id指定id,有可能是array

*@returnarray所有後代的和指定id的一維陣列

*/functiongetoffspring($id)

returnarray_merge($id,_getoffspring($id));

}/*主程式*/

ini_set('default_charset','utf-8');/*設定html輸出編碼為utf-8*/

mysql_connect('localhost','root','');/*連線mysql*/

mysql_select_db('family');/*開啟family資料庫*/

mysql_query("setnames'utf8'");/*設定資料庫輸出編碼*/

echo'';

var_dump(getforefathers(11));/*輸出id=11的祖先樹*/

var_dump(getoffspring(array(3,4)));/*輸出id=3及id=4的後代id表*/

echo'';

二.左右值法

適合資料量小且不經常改動的無限分類。

看一下上面的表就知道了,左值大於1右值小於18的為商品,左值小於2右值大於11的為食品。如果商品分類還要多的話,左右值就要動態更新。

優點:在消除遞迴的前提下實現了無限分級,而且查詢條件是基於整形數字比較的,效率很高。可以進行先序列表,新增,修改,刪除,同層平移等常規操作,基本滿足需求。

缺點:由於這種左右值編碼的方式和常見的阿拉伯數字直觀排序不同,再加上節點在樹中的層次,順序不是直觀顯示出來,而必須通過簡單的公式計算後得到,需要花費一定的時間對其數學模型進行深入理解。而且,採用該方案編寫相關儲存過程,新增,刪除,同層平移節點需要對整個樹進行查詢修改,由此導致的**複雜度,耦合度較高,修改維護的風險較高。

三.理解概念

四.演算法

溝通無限快樂無限發展無限

給學困生同一片藍天 隨著經濟的發展,社會的進步,學生對外界資訊的感知增大,學生不像以前那麼 純 了。經濟差異 智力差異 語言差異 思維方式的差異等等越來越明顯。表現在學習上是班內的學困生顯著增多。有的單是學習方面不盡人意,有的在紀律方面也常常違規,有的則各方面表現比較落後。成績不理想 自制力較差 言...

PHP新手總結的PHP基礎知識

php新手總結的php基礎知識.txt兩個男人追乙個女人用情淺的會先放棄。兩個女人追乙個男人用情深的會先放棄。你的話,我連標點符號都不信男女授受不親,中國哪來13億人口。2009 07 23 最近有好多初學php的站長們尋問一些基礎知識,站長家族在這裡整理一下php入門教程的基礎知識,希望能對廣大站...

自己總結PHP

1.我查詢乙個資料庫,然後我想讓裡面type是1的到html裡面顯示是普通使用者type是10的到html裡面顯示是管理員 2.button跟鏈結 3.還有數字型別欄位的值就不需要加 了4.兩個資料表連線 ps 以questions作為基礎去users表裡面查詢!5.php檔案頭部 記錄登入資訊。配...