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

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

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

3. プログラム制御
-------------------------------------- --- ---------------

このステップは、無制限の分類を実装する上で最も複雑で面倒な作業です。 まず、完了する必要があるステップを見てみましょう:

1) カテゴリを作成してアップロードします
2) 情報のアップロードを作成します
4) クエリ機能を処理します
5) 編集および削除機能を処理します。
カテゴリの編集と削除には整合性の問題が含まれるため、これらの 5 つのステップのうち最も難しいのは 5 番目のステップです。

次に、php のプログラム制御を 1 つずつ説明します:

1) カテゴリのアップロードを作成します

この機能を導入する前に。 、explode( ) を紹介しましょう。この関数は文字列処理関数であり、文字列を分解するために使用されます。例:

「0:1:2:3:4」の数値を分解します

$val= '0:1: 2:3:4';
$rid=explode(":",$val);

explode() 関数によって処理された後、$val 内のすべての数値が $rid に分解されます。配列を引用したい場合は、単に Print: echo '$rid[0],$rid[1],$rid[2]..."; 以上です。explode() 関数は、分類プロセス全体を説明します。それでは、現在の分類のプログラム制御を開始しましょう

合計分類は 0 であると仮定でき、すべての分類はその子孫分類になります。データベースに保存されます:

| rout_id |

システム 0:1 | rout_char
2 | Linux| 0: 1:2 | System: Linux
これは、フォーラムのコードと非常によく似ています。カテゴリの ID を uid に入力し、親カテゴリの uid を入力します。コードを見てみましょう:

....
....

//デフォルトページ
if (empty($func)) $func=='showtype' ;

//親カテゴリのuidを設定します
if (empty($uid)) $uid=0; ******************** *****************************
if ($func=='save'):

$fields = "";
$ 値 = "";

if ($id!="") {
$fields .= ",id" ;
$values.=",$id";

if ($uid!="" ) {
$fields.= ",$uid";
if ($type!="") {
$fields .= ",type";
$values .=",'$type'"
}

if ($route_id=="") {

//親カテゴリのroute_idを取得します
if ($uid!=0) {
$result = mysqlquery(" select * from type where id=$uid");
$route_id=mysql_result($result,0," Route_id");
} else {
$routr_id='0';
}
$fields .= ",route_id ";
//独自のroute_idを作成する
$route_id="$route_id:$id";
$values .=",'$route_id'";
}

//独自のroute_charを作成します
if ($route_char! ="") {
$fields .= ",route_char"; type";
$values.=",'$route_char'";
} else {
$fields .= " ,route_char";
$route_char=$type;
$values.=",'$route_char'";
}

$fields = substr($fields,1,strlen($fields)-1);
$values = substr($values,1,strlen($values)-1);

$result( "タイプ ($fields) 値 ($values) に挿入"); /* 保存終了 */


//カテゴリアップロード********** **************************** ********
if ($func=='createtype'):

//独自の ID を取得します
$result = mysqlquery("select * from type order by
id desc");
if (!empty($num)) {
$cat = mysql_result($result,0,"id");
} else {
$cat=0;
}

// 分類のステータスを決定する
if ($uid != 0) {
$result=mysql_query(" select * from type where id=$uid");
$type=mysql_result($result,0,"type");
$route_char=mysql_result($result,0,"route_char");
} else {
$ type='親カテゴリ';
echo "

";

echo "< td>Category:$type";
echo " カテゴリを作成します: ";

echo "gt;";
$cat =$cat+1;
echo "";
echo "";
echo "" ;
echo "";echo "";
echo "
";
終わり; /* end createtype */

//显示分类************************************** **********
if ($func=='showtype'):

echo "";

//分別状態判断
if ($uid!=0) {
$result=mysql_query("select * from type where id=$uid");
$type=mysql_result($result,0,"type");
} 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 "
创建分类
$type
";
echo "$type";
echo "
";
終わり; /* showtype の終了 */
....
....

?>



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