在Opencart模块中搜索多个关键字

时间:2014-06-23 16:32:27

标签: php oop opencart

我打算使用多个关键字进行搜索。我创建了一个名为" residev"的模块。该模块将从输入的许多关键字中找到适当的数据。如果只使用1个关键字,我已经成功了,但对于很多关键字我都有错误。

焦点是下面的代码,我改变了代码OpenCart的安排,因此采用了这样的数据库。搜索关键字也有很多代码。

$noresinya = mysql_real_escape_string($this->request->get['nomor_resi']);
            $hasil = mysql_query("SELECT * FROM oc_order WHERE nomor_resi LIKE '%".$noresinya."%'");
            $pisah_kata = explode(",", $noresinya);
            $produk = mysql_query("SELECT * FROM oc_order_product where order_id = ".$hasil['order_id']."");
            foreach($pisah_kata as $p){
                $hasil .= " OR nomor_resi LIKE '%$p%' ";
            }
            while($hasilnya = mysql_fetch_array($hasil)){ // and other codes

下面是控制器' residev'

的完整代码

http://pastebin.com/uxVm6FTe

下面是该模型的完整代码' residev'

http://pastebin.com/FMAymqHW

在视图中,只是一个搜索表单。谁能找到溶剂?

1 个答案:

答案 0 :(得分:0)

您必须遵循MVC-L(模型视图控制器 - 语言)代码结构。所以,我遵循这个规则..模型类,使用IN而不是OR部分并爆炸逻辑。您的查询应该是这样的:

WHERE categories IN ("red", "blue", "green")

你可以在模型类中使用此方法进行转义,这非常漂亮且容易:

$this->db->escape('$this->request->get['nomor_resi']')

并尝试使用单个查询。你可以使用JOIN's。