ホームページ > バックエンド開発 > PHPチュートリアル > 無制限のカテゴリ --- (商品検索) --- 痛みと幸福_PHP チュートリアル

無制限のカテゴリ --- (商品検索) --- 痛みと幸福_PHP チュートリアル

WBOY
リリース: 2016-07-13 17:53:37
オリジナル
939 人が閲覧しました

プロジェクトの最初のフェーズが終わりに近づいています。無限カテゴリのカスタム コールバック関数を共有しましょう (正直に言うと、書いたときは混乱しましたが、今読んでさらに混乱しました、O(∩) _∩)お~)
//プロジェクト要件: ホームページで商品検索をしたいです
//方法: ドロップダウン リストを作成します。リスト項目は、以下の表の 9 つのカテゴリ名になります。 。任意のカテゴリを選択し、製品テーブル(以下のサブカテゴリを含む)でそのカテゴリの製品を一度に検索したいと考えています。
//思考プロセス: 最初は、.%0-1%.... のような場所パスも考えましたが、後でページング時に大きな問題に遭遇したことがわかりました。サブカテゴリを持つ ID で製品をアップロードしないでください (製品をクエリするためにループするとき、カテゴリにサブカテゴリがある場合、空のループが発生します)。

話せば話すほどややこしくなるから、時計出して直接合図したほうがいいよ… カテゴリテーブルのデータ構造図:
+-----+-----+----------+--------------+
|ID パス |
+-----+-----+----------+--------------+
| 1 | すべての製品 1 | 2 | 0-1 | | 4 | 0-1-2 | | 5 | 0-1-2 | | 3 | 0-1 | | 6 | 0-1-3 | 輸入品 | 7 | 0-1-3 | | 8 | テストクラス 8
| 9 | 食料品セクション 9
+-----+-----+----------+--------------+
テーブルを見ると、私の考えは、ドロップダウン リストで [すべての製品] を選択すると、すべての製品に属するすべてのサブカテゴリを取得する必要があるということです (上記のものは取得したくありません)。表では「国有品」と「輸入品」(その下にサブカテゴリがあるため)。これを書いていると、コールバックを書くのにそれほど苦労する必要はないように思えます。 ~~~~(>_<)~~~~、、、、らしい、らしい、、、忘れてください、、、途中で諦めないでください、これを抑えるのに30分以上かかりました言葉。 。 。 ∑
mysql_connect('localhost','root','admin');
mysql_select_db('dzshop');
mysql_query("セット名 utf8");

//テスト
echo rtrim( list_typeid(1), ',' ); // 4,5,6,7,8,9 を出力 ^o^ このとき、typeid in(4,5,6, 7,8 ,9) すべての商品を持ち出すことはもう問題ではありません。
echo rtrim( list_typeid(2), ',' ); // 出力 4,5
echo rtrim( list_typeid(4), ',' ); //出力 4

/*
* 関数: list_typeid

* 機能: 指定されたカテゴリを取得し、指定された typeid (つまり、カテゴリ テーブルの ID) の下にサブカテゴリを含まないすべての category.id を取得します (category.id==goods.typeid)

* $id: クエリされる ID
* $category_name: 分類テーブルの名前
*/
function list_typeid($id,$category_name='カテゴリ'){

$sql="a.id={$id} および b.pid={$id} である {$category_name} a,{$category_name} b から b.id,b.pid を選択します";

$result=mysql_query($sql);
if(mysql_affected_rows()>0){ //影響を受ける行の数は 0 より大きい、つまり、このカテゴリの下にサブカテゴリがあることを意味します。その中に入って実行を続行します
while( $arr = mysql_fetch_assoc($result) ){
$list_id.=list_typeid($arr['id']);
}
}else{ //影響を受ける行はありません。つまり、このサブクラスの下にはサブクラスがないため、この ID を取り出します
return $id.','; // SQL ステートメントを記述するのに便利 .... WHERE ID IN($id) ....
}
$list_id を返す;
}

作者: zdrjlamp



http://www.bkjia.com/PHPjc/478011.html

www.bkjia.com


tru​​e

http://www.bkjia.com/PHPjc/478011.html

プロジェクトの最初のフェーズが終わりに近づいています。無限分類のカスタマイズに関するコールバック関数を共有しましょう (正直に言うと、当時書いたときは混乱していましたが、今見るとさらに混乱しています、O)。 (_)O~) //プロジェクト要件...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート