PHP 無制限分類プログラム コード_PHP チュートリアル
無限分類 データを分類する場合、ほとんどの場合、ニュースやソフトウェア チャネルにはさまざまなサブカテゴリがある可能性がありますが、これらのサブカテゴリがわからないため、無限分類方法を使用する必要があります。
最初のカテゴリ (親カテゴリ) –> 2 番目のカテゴリ (子カテゴリ) –> 3 番目のカテゴリ (孫カテゴリ)
そのような親族分類が増えるほど、プログラムとデータベースを制御することがより複雑になり、同じレベルでの分類処理と制御は非常に簡単になります。これは、次のようなこのレベルの分類を記録するのに必要なデータベースが 1 つだけであるためです。 、ニュースやその他の分類はこのレベルでの処理が非常に簡単ですが、Web サイトの場合は、第 1 レベルの分類だけでは十分ではなく、次のように再度分類する必要があります。
システム –> Linux、Windows
ニュース – > Linux ニュース、Windows ニュース
linux–>システム ツール、カーネル、プログラミング言語、開発ツール
…
分類が第 3 レベルになると、情報の処理がより明確になります。つまり、情報を明確に処理するには、分類が詳細であればあるほど、情報の処理が容易になります。ネチズンが明確な目的を持って必要な情報を見つけやすくなります。しかし、分類が改良され続けるにつれて、プログラムとデータベースを制御することはますます困難になります。
難易度 2: php を使用してこの明確な関係を完成させるにはどうすればよいですか?
この種のマルチレベルで詳細な分類は、すべての PHP プログラマーが解決しなければならない問題です。優れた Web サイトを作成するには分類の問題は避けられず、この問題の解決は非常に複雑であり、その中で最大の問題はデータベースの分類処理。データベースが適切に処理されないと、膨大な作業負荷が発生し、データベースの再計画も必要になるためです...
今回紹介する方法は、分類データベースを使って無限下位分類法を作成する方法です。Windowsを使用したことのある読者ならご存知の通り、Windowsフォルダーには無限下位分類ディレクトリが作成でき、その下にディレクトリを作り続けることができます。 , このように延々と続きますが、Linuxのディレクトリ作成にもこの機能があります
私が紹介した方法はこの形式と同じです。データベース計画
分類の複雑さについては先ほど説明しましたが、無制限の分類を実現するには、データベースをどのように計画するかが非常に重要なステップになります。私はかつてフォーラムのデータベース計画について紹介しました。はい、フォーラムは無制限のフォローアップを実現できます。分類は子供と親の間の関係でもあります。このような子供と親の関係を明確にするためには、いくつかの困難があります。
1) 各カテゴリーの情報保管の扱い方;
2) 分類の親族関係にどう対処するか;
親族関係のデータベース処理は、フォーラムのデータベース処理に似ています。ここでは、分類を処理するためのタイプ データベースを構築します。
フィールドの作成:
id(int): 各カテゴリの自然なシリアル番号を記録するために使用されます
uid(int): このカテゴリの親カテゴリの ID 番号を記録するために使用されます
roue_id (varchar): 親族関係を示すための親族ツリー、:0:2:10:20: の ID で接続します
roue_char (varchar): アフィニティ ツリー、次のようなもの: system: linux: 開発ツール: gcc: (このフィールドが存在するかどうかは関係ありません。各アフィニティをよりわかりやすく理解するために、もちろん文字表現はより直接的です数値表現よりも^o^ですが、このフィールドを追加するのが最適です)
このような無制限のカテゴリテーブルが確立されました。次に、情報を保存するためのデータベースを確立する必要があります。テーブルを処理してクエリするのが最も便利です。そのため、情報を保存するためのテーブル type_message:
id(int): メッセージのシリアル番号;
typeid(int): カテゴリの ID 番号;
title(varchar): メッセージのタイトル;
time: 情報が作成された時刻;
これら 2 つのデータ テーブルは、無制限の分類タスクを完了できます (2 つのテーブルの補助フィールドは追加されません。読者は独自に追加できます)。
残りのタスクはphpによって処理されます
プログラム制御
このステップは、無限分類関数を実装する上で最も複雑で手間がかかるものです。まず、プログラム内で完了する必要があるステップを見てみましょう。
2) アップロードする情報を作成します;
3) 各カテゴリとそれらの関係を明確に表示します。4) プロセスクエリ関数;
5) 編集および削除機能の処理方法;
カテゴリの編集と削除には均一性の問題が含まれるため、これら 5 つのステップの中で最も難しいのは 5 番目のステップです。
以下、phpのプログラム制御を一つ一つ説明していきます
1)カテゴリーを作成してアップロード
この関数を紹介する前に、まず、explode() 関数を紹介します。これは、文字列を分解するために使用される、次のような具体的な使用法です。
「0:1:2:3:4」の数字を分解します
$val="0:1:2:3:4";
$rid=explode(":",$val);
Expand() 関数によって処理された後、$val 内のすべての数値が $rid 配列に分解されます。引用したい場合は、単に echo “$rid[0],$rid[1],$rid” と出力します。 [2]… "; 以上です。explode() 関数は、分類プロセス全体において非常に重要な役割を果たします。次に、非現行分類のプログラム制御の導入を始めましょう。
合計分類が 0 であり、すべての分類がその子孫であると仮定できます。次に、最初の分類「システム」を確立し、それがデータベースにどのように保存されるかを見てみましょう。
id | ルート ID | 1 | 0 | システム次に、「Linux」を以下に分割しました:
上記はデータベース ストレージの形式です。これはフォーラム コードとよく似ています。必要なのは、カテゴリ ID を uid に入力し、親カテゴリの uid を 0 に入力することだけです。コード:
コードは次のとおりです
コードをコピー
…… //デフォルトページを設定します
if (empty($func)) $func=="showtype";
$values.=",$id"; if ($uid!="") { if ($type!="") { if ($route_id=="") { $route_id=mysql_result($result,0,"route_id"); } その他 {
$routr_id="0";
} その他 {
endif; /* 保存を終了 */
if ($func=="createtype"):
ID の説明");
$cat = mysql_result($result,0,"id");
} その他 { |
echo "";
エンドイフ; /* createtype の終了 */
//显示分类********************************************* ***
if ($func=="showtype"):
エコー "";
//分別状態判断
if ($uid!=0) {
$result=mysql_query("select * from type where id=$uid");
$type=mysql_result($result,0,"type");
} その他 {
$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 "$type";
echo "
}
}
エコー "";
エンドイフ; /* ショータイプの終了 */
……
……
?>
以上の手順により、無制限の分別クラスの基本的な構築、保存、および表示が完了し、次に完全な分別クラスの構築機能の各部分が完了します。
経路跟追跡
前に分別の構築方法を説明しましたが、分別テーブルに rout_id と rout_char という 2 つの分別経路を保存する情報が記載されており、何も処理しない場合、プログラムは次の順序で最下層まで進むことができます。倒立退行 (もちろん、ブラウザのバック ボタンを利用することもできますが、このプロセスは不完全です)、したがって、 rout_id と rout_char の情報分解を完了する必要がある経路指示です。
具体的な実行法、假如データ库记これ么一条分类信息:
ID:4
uid:2
タイプ:开公開工具
ルートID:0:1:2:4
rout_char:系统:linux:开公開工具
当プログラムが分別クラス「公開ツール」に到達したとき、経路情報の表示を要求するほかに、パス上の任意の分クラスに移動できるようにする必要がありますか?ここでは、explode() 関数の使用が必要です。と rout_char は相互関係があるため、分解できます:
复制幣 | |
$path=explode(":",$rout_id); $path_gb=explode(":",$rout_char);
|
今回はすべての分別情報が分解されており、現在行われているのは接続された方法で経路情報です:
复制幣 | |||||||||
for ($i=0;;$i++) { $a=$i+1;
エコー「」
href=$php_self?func=showtype&uid=",$path[$a],">",$path_gb[$i],":"; |
コードをコピー | |
…… //分類のステータスを決定する
if ($uid!=0) {
$rout_id=mysql_result($result,0,"rout_id"); | |
"; for ($i=0;;$i++) { $a=$i+1; エコー「」 href=$php_self?func=showtype&uid=",$path[$a],">",$path_gb[$i],":"; if (empty($path_gb[$i])) { 休憩; } } echo " | |
创建分类 | |
$type | |
";
echo "$type"; |
エンドイフ; /* ショータイプの終了*/
……
……
?>

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。
