【发布时间】:2013-09-28 06:25:30
【问题描述】:
我有4个mysql表如下..
产品(id、sku、名称、color_id、描述、摘录)
颜色(color_name,color_id)
类别(categ_name,categ_id)
Product_Categories (pid,cid)
现在我要执行搜索操作。目前我的搜索查询是基于产品 id、sku、description 或 color_id。
我的查询在codeigniter中如下......
$color_id = 0;
$this->db->select('color_id');
$this->db->where('LOWER(color_name)',strtolower($term));
$color_row = $this->db->get('product_colors')->row();
if($color_row)
$color_id = $color_row->color_id;
$this->db->select('*, LEAST(IFNULL(NULLIF(saleprice, 0), price), price) as sort_price', false);
//this one gets just the ones we need.
$this->db->where('enabled', 1);
$this->db->where('(name LIKE "%'.$term.'%" OR description LIKE "%'.$term.'%" OR excerpt LIKE "%'.$term.'%" OR sku LIKE "%'.$term.'%" OR color='.$color_id.')');
这工作得很好。但我也想按类别搜索。例如,我想搜索 “Red Shoes”,其中红色是颜色,鞋子是类别名称。
请告诉我如何为此构建查询。
这将是一个很大的帮助。
谢谢!!!
【问题讨论】:
-
不,请告诉我们您将如何为此构建查询,如果您遇到任何问题,我们会提供帮助。
-
@markus 谢谢你的否定,但我不知道这里需要写什么查询。我不知道这种类型的搜索(红色显示,棕色夹克等)
-
好吧,开始寻找吧,如果没有别的,请通过反复试验。你都尝试了些什么?它是如何失败的?你对如何解决这个问题有什么想法?你需要表明你愿意做出贡献,而不是让别人为你做你的工作。
-
@markus 我能做什么我已经做了我正在搜索除类别之外的所有基础。只剩下这个了。
-
通常产品的颜色名称不会改变 - 因此请考虑将其作为产品表的一部分。创建产品时,您仍然可以使用单独的表格来选择颜色名称。
标签: php mysql codeigniter search