我打算使用多个关键字进行搜索。我创建了一个名为" 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'
的完整代码下面是该模型的完整代码' residev'
在视图中,只是一个搜索表单。谁能找到溶剂?
答案 0 :(得分:0)
您必须遵循MVC-L(模型视图控制器 - 语言)代码结构。所以,我遵循这个规则..模型类,使用IN
而不是OR
部分并爆炸逻辑。您的查询应该是这样的:
WHERE categories IN ("red", "blue", "green")
你可以在模型类中使用此方法进行转义,这非常漂亮且容易:
$this->db->escape('$this->request->get['nomor_resi']')
并尝试使用单个查询。你可以使用JOIN's。