Php 具有多个表的搜索结果,如查询CodeIgniter
CodeIgniter/PHP/MYSQL 我有两张这种结构的桌子Php 具有多个表的搜索结果,如查询CodeIgniter,php,mysql,codeigniter,Php,Mysql,Codeigniter,CodeIgniter/PHP/MYSQL 我有两张这种结构的桌子 国家:id,国家名称(1,印度尼西亚,2,印度) 州:id,国家id,州名(1,1,苏拉威西塞拉坦)(2,1,苏拉威西腾加)(3,1,苏门答腊尤塔拉)(4,2,古吉拉特邦) 我想用多个表进行搜索 例如,如果我输入“si”,那么它将给出如下结果 印度尼西亚-----苏拉威西群岛 印度尼西亚------苏拉威西登加 印度------古吉拉特邦 如何在codeingniter查询中找到此结果: 我正在尝试以下查询: SELECT
印度尼西亚-----苏拉威西群岛 印度尼西亚------苏拉威西登加 印度------古吉拉特邦
如何在codeingniter查询中找到此结果: 我正在尝试以下查询:
SELECT ts.id,ts.state_name,tc.country_name
FROM STATE ts
LEFT JOIN COUNTRY tc
ON tc.id = ts.country_id
WHERE ts.state_name LIKE '%si%' || tc.country_name LIKE '%si%'
此查询的我的输出:
苏拉威西群岛------印度尼西亚 苏拉威西腾迦------印度尼西亚 苏门答腊岛------印度尼西亚
您可以尝试以下代码: 控制器
public function search_general_medicine() {
ini_set("memory_limit", "512M");
$keyword = $this->input->post('keyword');
$medical_id = $this->input->post('medical_id');
if ($keyword != '' && $medical_id != '') {
$result_medicine = $this->ws->get_medicine_details($keyword);
print_r($result_medicine);
}
型号
function get_medicine_details($keyword)
{
$query = "SELECT * FROM (
SELECT medicine_id, medicine_name,medicine_package,medical_id,'g' FROM tbl_general_medicine
UNION
SELECT medicine_id, medicine_name,medicine_package,medical_id,'c' FROM tbl_medicine
) AS t
WHERE medicine_name LIKE '%" . $keyword . "%' limit 20;";
$result_medicine = $this->db->query($query);
if ($result_medicine->num_rows() > 0) {
return $result_medicine->result_array();
} else {
return array();
}
}
使用or_like()/orlike(),有关更多信息,请参考:
或者,您也可以使用CI来完成整个查询,而不是手工编写整个查询。查询的结果是什么?如何使用ActiveRecord?你能帮帮我吗@ghost谢谢。。它起作用了
$this->db->select("ts.id,ts.state_name,tc.country_name");
$this->db->from("STATE ts")
$this->db->join("COUNTRY tc","tc.id = ts.country_id","Left");
$this->db->like('ts.state_name', $word);
$this->db->or_like('tc.country_name',$word);