嗨朋友们,我在我的网站上有一个自定义搜索功能。搜索取决于两个表,例如 product_table
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`));
多个表
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`));
我正在为用户提供按一个或多个字段进行搜索的选项 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()";
}
但这会产生一些不正确和大量的结果,而且搜索也需要太多时间。我不知道为什么会这样。我听说过 MYSQL VIEWs 这样做有什么意义吗?或者我有什么简单的方法可以做到这一点?谢谢