無限分類とは何ですか? Windows で新しいフォルダーを作成するのと同じように、新しく作成したフォルダーの下に新しいフォルダーを作成することができます。これは、無限のカテゴリにも当てはまります。サブクラスは のサブクラスに分割でき、これが無限ループし続けます 。 それでは、PHP はどのようにして無限の分類を実現するのでしょうか?さまざまなカテゴリを 1 つずつリストするにはどうすればよいでしょうか? まず、ニュース→PHPニュース→PHP6.0が出たというような3段階の分類があると仮定します。
「PHP6.0 がリリースされました」というニュースを見つけたい場合は、まずニュースをクリックし、次に PHP ニュースをクリックして調べることができます。つまり、祖父クラスを通じて下位レベルまで検索できます。逆も同様で、サブクラスの親クラスがわかっていれば、それを見つけることができます。このようにして、データベースを設計するときに、親クラス ID の追加フィールドを設計して、無制限の分類機能を実現できます。<code>//我们建一个表"class" <span><span>CREATE</span><span>TABLE</span><span>`class`</span> ( <span>`id`</span><span>int</span>(<span>11</span>) <span>NOT</span><span>NULL</span> auto_increment COMMENT <span>'分类id'</span>, <span>`f_id`</span><span>int</span>(<span>11</span>) <span>NOT</span><span>NULL</span> COMMENT <span>'父id'</span>, <span>`name`</span><span>varchar</span>(<span>25</span>) <span>collate</span> gbk_bin <span>NOT</span><span>NULL</span> COMMENT <span>'分类名称'</span>, <span>PRIMARY</span><span>KEY</span> (<span>`id`</span>) ) ENGINE=MyISAM <span>DEFAULT</span> CHARSET=gbk <span>COLLATE</span>=gbk_bin AUTO_INCREMENT=<span>1</span> ;</span>//首先我们往数据库里插入‘新闻’这个大分类,因为‘新闻’是最大分类,上面没有父类了,所以我把它的f_id设置为0。 <span><span>INSERT</span><span>INTO</span><span>`class`</span> (<span>`id`</span>, <span>`f_id`</span>, <span>`name`</span>) <span>VALUES</span>(<span>1</span>, <span>0</span>, <span>'新闻'</span>);</span> //id这个字段是自动增长的,可以不写值。 //然后我们再往数据库里插入‘PHP新闻’这个分类,它的父类‘新闻’的id是1,所以它的f_id设置为1。 <span><span>INSERT</span><span>INTO</span><span>`class`</span> (<span>`id`</span>, <span>`f_id`</span>, <span>`name`</span>) <span>VALUES</span>(<span>2</span>, <span>1</span>, <span>'PHP新闻'</span>);</span>//然后我们再往数据库里插入‘PHP6.0出来了’这个分类,它的父类‘PHP新闻’的id是2,所以它的f_id设置为2。 <span><span>INSERT</span><span>INTO</span><span>`class`</span> (<span>`id`</span>, <span>`f_id`</span>, <span>`name`</span>) <span>VALUES</span>(<span>3</span>, <span>2</span>, <span>'PHP6.0出来了'</span>);</span>//同理,我们可以这样一直往下插入分类,也就达到了无限分类。 //我们可以发现插入一个分类的原则关键是找到这个分类的父类的id,然后作为这个分类的f_id字段的值。 //假设要插入跟‘新闻’同一个级别的分类‘技术’,也就是说它也是最大分类,上面没有父类了,那么它的f_id也设置为0; <span><span>INSERT</span><span>INTO</span><span>`class`</span> (<span>`id`</span>, <span>`f_id`</span>, <span>`name`</span>) <span>VALUES</span>(<span>4</span>, <span>0</span>, <span>'技术'</span>);</span>//在‘技术’下面又有一个分类‘PHP技术’,那么我们怎么插入呢,首先找到‘PHP技术’的父类‘技术’的id,然后作为自己的f_id字段的值。 <span><span>INSERT</span><span>INTO</span><span>`class`</span> (<span>`id`</span>, <span>`f_id`</span>, <span>`name`</span>) <span>VALUES</span>(<span>5</span>, <span>4</span>, <span>'PHP技术'</span>);</span>//看到这里,想必大家应该都明白怎么往数据库里插入各个分类了。就不再举例了。</code>
http://blog.csdn.net/kao331431214/article/details/5425698
上記は、コンテンツの側面も含めて、PHP における無制限の分類の原理を紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。