ホームページ  >  記事  >  php教程  >  PHP アドバンスト: 無制限の分類を実現する (4)

PHP アドバンスト: 無制限の分類を実現する (4)

WBOY
WBOYオリジナル
2016-06-21 09:10:28892ブラウズ

4. パス追跡
-------------------------------------- --- ---------------
分類の作成と実装方法は以前紹介しましたが、2つの情報格納分類パスであるrout_idとrout_charは何も付けずに分類テーブルに記録されます。この場合、プログラムは一番下のカテゴリまで順番に進むことしかできず、戻ることはできません(もちろんブラウザの戻るキーで戻ることはできますが、プログラムとしては不完全です)。および rout_char を分解する必要があります。

データベースにそのような分類情報が記録されている場合の具体的な方法:

id:4
uid:2
type: 開発ツール
rout_id:0:1:2:4
rout_char: system: linux: 開発ツール

プログラムが「開発ツール」カテゴリに移動すると、パス情報を表示するだけでなく、パス上の任意のカテゴリに移動できることも必要になります。これはどのようにすればよいでしょうか。ここでは、explode() 関数を使用する必要があります。 rout_id と rout_char は対応しているため、分解できます:
$path_gb=explode(":",$rout_char) ;

これですべての分類情報が分解されました。次に行う必要があるのは、リンクの形式でパス情報を復元することです。 1;
echo "< a
href=$php_self?func=showtype&uid=",$path[$a],">",$path_gb[$i],":"; (empty($path_gb[$ i])) {
break;
}
}

上記のコードは、無限分類を実装しているため、上限がありません。 $i=0;$i++)、ループ終了の条件は $path_gb[$i] の値が空であることです:

....
//カテゴリを表示********************************* ****** *************
if ($func=='showtype'):

echo "

";分類
if ($uid!= 0) {
$result=mysql_query("select * from type where id=$uid");
$type=mysql_result($result,0,"type"); ******** 新規追加代償 ***************
$rout_id=mysql_result($result,0,"rout_id");
$rout_char=mysql_result($result,0,"rout_char");
$path=explode(":",$rout_id);
$path_gb=explode(":",$rout_char);
echo "";
//******** end ***********************

} else {
$type='父分类';
}

echo "" ;

echo "";

$result=mysql_query("select * from type where uid=$uid");
$num=mysql_numrows($result);

if (!empty($num)) {
for ($i=0;$i
$id=mysql_result($result,$i,"id");
$type=mysql_result($result,$i,"type");

echo "";
}
}

echo "
";
for ($i=0;;$i++) {
$a=$i+1;
echo "href=$php_self?func=showtype&uid=",$path[$a],">",$path_gb[$i],":";
if (empty($path_gb[$i])) {
break;
}
}
echo "
创建分类
$type
";
echo "$type";
echo "
";
終わり; /* ショータイプの終了*/
.....
....
?>

この機能ブロックを完了すると、引き続き機密情報を表示できます...

<全文終了>








声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。