こんにちは友人私は私のウェブサイトにカスタム検索機能を持っています。検索は、 product_tableなどの2つのテーブルに依存してい ます
CREATE TABLE `product_table` (
`product_id` int(11) NOT NULL auto_increment,
`product_name` varchar(100) NOT NULL,
`country` varchar(200) NOT NULL,
`added_time` timestamp NOT NULL default CURRENT_TIMESTAMP,
PRIMARY KEY (`product_id`));
multiple_table
CREATE TABLE `multiple_table` (
`multi_id` int(11) NOT NULL auto_increment,
`cat_id` int(11) NOT NULL,
`product_id` int(11) NOT NULL,
PRIMARY KEY (`multi_id`));
1つまたは複数のフィールドで検索するオプションをユーザーに提供しています。 product_name,country,cat_id,added_time
私の検索機能は次のとおりです。
if(isset($_GET['s_button'])){
$sql2="SELECT a.product_id FROM product_table a, multiple_table b WHERE b.product_id= a.product_id ";
$where=array();
$values = array();
$types = '';
if(!empty($_GET['search_cat'])){
$search_cat=clean($_GET['search_cat']);
$where[]="AND cat_id='".$search_cat."'";
}
if(!empty($_GET['product_country'])){
$country=clean($_GET['product_country']);
$where[]="AND country='".$country."'";
}
if(!empty($_GET['model'])){
$keyword=clean($_GET['model']);
$where[]="AND product_name LIKE '%".$keyword."%'";
}
$sql2 .= implode($where). " ORDER BY a.product_id ";
}else{
$sql2 = "SELECT product_id FROM product_table ORDER BY Rand()";
}
しかし、これはいくつかの不正確で膨大な数の結果を生み出し、検索にも時間がかかりすぎます。それがなぜかわかりません。MYSQLVIEWについて聞いたことがありますが、これを行うのは意味がありますか?または、これを実現する簡単な方法はありますか?ありがとう