ホームページ >バックエンド開発 >PHPチュートリアル >Zhongguancun Online や Pacific Automotive と同様に、複数属性検索はどのように行われますか?また、そのアイデアは何ですか?
複数属性検索
http://detail.zol.com.cn/notebook_index/subcate16_0_list_4000_s1227_1_1_0_1.html 中関村オンライン 2 つの解決策:
1 は、JavaScript を使用して、選択した変数を URL に結合することです。最初に選択し、ボタンをクリックしてから Web ページを開く必要があります (操作は送信に似ています)
2 は、PHP が各パラメータに従ってリンクを書き込むことです。このスキームは、パラメータがクリックされるたびに Web ページを更新します。ウェブページでは、選択された複数のリンクを参照します 条件はすべてのリンクの出力を再計算します
2 の変形ソリューションは ajax です
<dt>品牌</dt> <dd class="brand-sel-box clearfix"> <div id="singular" class="brand-list"> <span class="all sel">不限</span> <a href="/notebook_index/subcate16_160_list_4000_s1227_1_1_0_1.html">联想</a> <a href="/notebook_index/subcate16_227_list_4000_s1227_1_1_0_1.html">华硕</a> <a class="null" rel="nofollow" href="/notebook_index/subcate16_21_list_4000_s1227_1_1_0_1.html">戴尔</a> <a class="null" rel="nofollow" href="/notebook_index/subcate16_223_list_4000_s1227_1_1_0_1.html">惠普</a> <a href="/notebook_index/subcate16_1191_list_4000_s1227_1_1_0_1.html">神舟</a> <a class="null" rel="nofollow" href="/notebook_index/subcate16_218_list_4000_s1227_1_1_0_1.html">Acer宏?</a>.....<dt>价格</dt> <dd class="clearfix"> <a href="/notebook_index/subcate16_list_s1227_1.html" class="all">不限</a> <a class="null" rel="nofollow" href="/notebook_index/subcate16_0_list_0_s1227_1_1_0_1.html">1999元以下</a> <a href="/notebook_index/subcate16_0_list_2000_s1227_1_1_0_1.html">2000-2499元</a> <a href="/notebook_index/subcate16_0_list_2500_s1227_1_1_0_1.html">2500-2999元</a>明らかに、接続はサーバーによって生成されます
<div class="getTh">价格:</div><div class="umLimit"><a class='' href="/price/q-k75.html">不限</a></div><div class="Items"><a class='' href="/price/q-p1-k75.html">5万以下</a><a class=' s' href="/price/q-p2-k75.html">5-8万</a><a class='' href="/price/q-p3-k75.html">8-10万</a><a class='' href="/price/q-p4-k75.html">10-15万</a><a class='' href="/price/q-p5-k75.html">15-20万</a><a class='' href="/price/q-p6-k75.html">20-25万</a>......<div class="getTh">级别:</div><div class="umLimit"><a class='' href="/price/q-p2.html">不限</a></div><div class="Items"><a class=' ' href='/price/q-p2-k76.html'>微型车</a><a class=' ' href='/price/q-p2-k110.html'>小型车</a><a class=' ' href='/price/q-p2-k73.html'>紧凑型车</a><a class=' ' href='/price/q-p2-k72.html'>中型车</a><a class=' null' href='javascript:void(0)'>中大型车</a>
ajiax バックグラウンド処理データ
最も簡単な方法は、データ出力を取得するための ajax です
実際、問題の鍵は、「ものの 1 つの属性を通じて他の属性が存在するかどうかを判断する方法」です。データベースにアクセスして取得する条件であれば、実装は難しくありません。たとえば、条件
"50,000-80,000" をクリックすると、最も愚かな方法が選択されます。 * from auto_detail where Market_price >= 50000 and Market_price <
(auto_detail がすべてのメーカーのすべてのモデルを格納する詳細情報テーブルであると仮定します)
次に、結果を再度ループします。セット内の auto_grade と car_brand を 1 つずつ返します ...(省略);
では、「すべての車のクラス、車のブランド...」などのデータはどこから来たのでしょうか? xxx から別の auto_grade を選択するだけです。
より適切な作業を行う場合は、比較用で頻繁に更新する必要のないすべてのデータをキャッシュに保存すると、毎回データベースにアクセスして確認する必要がなくなります。
あとは、auto_grade にどの属性が存在し、どの属性が存在しないかを判断して、ページを制御してスタイルを変更するだけです。
上記は最も愚かなアプローチです。出発点として使用する必要があります
これは専用のエンタープライズ レベルの検索エンジンです。
solr、spix、lucene をチェックしてください!