プロジェクトの最初のフェーズが終わりに近づいています。無限カテゴリのカスタム コールバック関数を共有しましょう (正直に言うと、書いたときは混乱しましたが、今読んでさらに混乱しました、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
* $id: クエリされる ID
* $category_name: 分類テーブルの名前
*/
function list_typeid($id,$category_name='カテゴリ'){
$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
http://www.bkjia.com/PHPjc/478011.html