如何在Codeigniter中为多个表创建一个搜索模块?

时间:2015-03-17 10:34:54

标签: php mysql codeigniter

我必须搜索Either' Professional'或者'供应商'桌子以及用户' table ..你可以帮我解决一下如何在一次搜索中确定搜索所属的位置。

以下结果是寻找表中的匹配..我不想要那个...我希望在两个表中都有正确的匹配..任何人都可以帮助我吗?

<?php

$this->db->select('*');
$this->db->from('users');
$this->db->join('professional', 'professional.accountId = users.id');
$this->db->join('vendor', 'vendor.accountId = users.id');
$this->db->like('users.realname', $search_term);
$this->db->or_like('users.email', $search_term);
$this->db->or_like('users.category', $search_term);
$this->db->or_like('users.full_name', $search_term);
$this->db->or_like('users.license_id', $search_term);
$this->db->or_like('professional.state', $search_term);
$this->db->or_like('professional.city', $search_term);
$this->db->or_like('professional.country', $search_term);
$this->db->or_like('professional.pincode', $search_term);
$this->db->or_like('professional.mobile', $search_term);
$this->db->or_like('professional.phone', $search_term);
$this->db->or_like('professional.profession', $search_term);
$this->db->or_like('vendor.state', $search_term);
$this->db->or_like('vendor.city', $search_term);
$this->db->or_like('vendor.country', $search_term);
$this->db->or_like('vendor.pincode', $search_term);
$this->db->or_like('vendor.mobile', $search_term);
$this->db->or_like('vendor.phone', $search_term);
$this->db->or_like('vendor.firm_catagory', $search_term);
$this->db->group_by("users.id");

$query = $this->db->get();

$qu = $query->result_array();

foreach ($qu as $row) {

$row_set[] = htmlentities(stripslashes($row['accountId'])); //build an array
}

echo json_encode($row_set);

&GT;

1 个答案:

答案 0 :(得分:2)

我找到答案..由我自己:但我想打印更多结果,如$ row ['country'],$ row ['city'],$ row ['state']等。)

<?php

$this->db->select('*');
$this->db->from('users');
$this->db->join('professional', 'professional.accountId = users.id');
$this->db->like('users.realname', $search_term);
$this->db->or_like('users.email', $search_term);
$this->db->or_like('users.category', $search_term);
$this->db->or_like('users.full_name', $search_term);
$this->db->or_like('users.license_id', $search_term);
$this->db->or_like('professional.state', $search_term);
$this->db->or_like('professional.city', $search_term);
$this->db->or_like('professional.country', $search_term);
$this->db->or_like('professional.pincode', $search_term);
$this->db->or_like('professional.mobile', $search_term);
$this->db->or_like('professional.phone', $search_term);
$this->db->or_like('professional.profession', $search_term);
$this->db->group_by("users.id");

$query = $this->db->get();

$qu = $query->result_array();

foreach ($qu as $row) {

$row_set[] = htmlentities(stripslashes($row['accountId'])); //build an array
}
if (isset($row_set)) {

echo json_encode($row_set);

}




$this->db->select('*');
$this->db->from('users');
$this->db->join('vendor', 'vendor.accountId = users.id');
$this->db->like('users.realname', $search_term);
$this->db->or_like('users.email', $search_term);
$this->db->or_like('users.category', $search_term);
$this->db->or_like('users.full_name', $search_term);
$this->db->or_like('users.license_id', $search_term);
$this->db->or_like('vendor.state', $search_term);
$this->db->or_like('vendor.city', $search_term);
$this->db->or_like('vendor.country', $search_term);
$this->db->or_like('vendor.pincode', $search_term);
$this->db->or_like('vendor.mobile', $search_term);
$this->db->or_like('vendor.phone', $search_term);
$this->db->or_like('vendor.firm_catagory', $search_term);
$this->db->group_by("users.id");
$query2 = $this->db->get();
$qu2 = $query2->result_array();

foreach ($qu2 as $row) {

$row_set2[] = htmlentities(stripslashes($row['accountId'])); //build an array
}

if (isset($row_set2)) {

echo json_encode($row_set2);

}
?>