1. データベース設計:
/**
* @author koma
* @todo PHP Infinitus 分類
*/ $cn = mysql_connect('localhost', 'root', '') または die(mysql_error()); 't' , $cn) または die(mysql_error());
mysql_query('set names utf8')
/**
* 最上位からサブクラスを取得します
* @paramnumber $pid
* @param array $lists
* @param number $deep
* @return array
*/ function getLists($pid = 0, &$lists = array(), $deep = 1) {
$sql = 'SELECT * FROM category WHERE pid='.$pid;
$res = mysql_query($sql)
while ( ($row = mysql_fetch_assoc($res)) !== FALSE ) {
$row['catename'] = str_repeat(' ', $deep).'|---'.$row['catename']
$lists[] = $row[ 'id' ], $lists, ++$deep); // サブクラスに入る前の深さ +1 --$deep; // サブクラスを終了した後の深さ -1 }
$lists を返す
}
関数 displayLists; pid = 0, $selectid = 1) {
$result = getLists($pid);
$str = '
';
} /* *
* サブクラスから開始して親クラスを段階的に取得します
* @paramnumber $cid
* @param array $category
* @return array:
*/ function getCategory($cid, &$category = array()) {
$ sql = 'SELECT * FROM category WHERE id='.$cid.'
$result = mysql_query($) sql);
$row = mysql_fetch_assoc($result);
if ( $row ) {
getCategory($row['pid'], $category); ; // 親クラスからサブクラスへの順序を逆にする return $category;
function displayCategory($cid) {
$str = "" foreach; as $item ) {
$str .= '
'.$item['catename'].'>' ;
}
return substr($str, 0, strlen($str) - 1)
echo displayLists(0, 3);
3、レンダリング:
著作権料なしで友達が直接使用できるのはとても簡単ですね^_^
http://www.bkjia.com/PHPjc/917041.html
www.bkjia.com
PHP での Infinitus 分類の実装に関するグラフィカルなチュートリアル。一般に、Infinitus 分類の実装には再帰的メソッドまたは反復メソッドが使用されます。この記事の実装方法を参照してください。 1. データベース設計:...