Php CodeIgniter-通过另一个查询从数据库中选择';s结果
如果之前有人问我,请原谅,但我找不到要搜索的相关关键字。我会尽力解释我的问题 我有名为“ilan”和“places”的DB表。在“宜兰”表中,有3列保存着地方的ID——城市、地区、街道 我想学习如何在视图中打印ilan.name和相关的places.name 我有一个控制器,比如:Php CodeIgniter-通过另一个查询从数据库中选择';s结果,php,codeigniter,Php,Codeigniter,如果之前有人问我,请原谅,但我找不到要搜索的相关关键字。我会尽力解释我的问题 我有名为“ilan”和“places”的DB表。在“宜兰”表中,有3列保存着地方的ID——城市、地区、街道 我想学习如何在视图中打印ilan.name和相关的places.name 我有一个控制器,比如: class Estate_control extends CI_Controller{ public function _construct(){ parent::_construct(); } f
class Estate_control extends CI_Controller{
public function _construct(){
parent::_construct();
}
function index(){
$this->load->helper('url');
$this->load->model("estate_model");
$data['tum_bayiler'] = $this->estate_model->tum_bayileri_listele();
$data['sonEmlaklar'] = $this->estate_model->sonEmlaklar();
$this->load->view("index",$data);
}
}
我有这样的模型:
class Estate_model extends CI_Model{
function __construct(){
parent::__construct();
}
function sonEmlaklar(){
$query = $this->db
->select()
->from("ilan")
->order_by("gunceltarih DESC")
->limit(36)
->get();
return $query->result();
}
}
我的数据库表:
宜兰:
ilan_id,gunceltarih,宜兰乌市(地点标识表)、宜兰乌区(地点标识表)、宜兰乌街(地点标识表)
地点:
地点id,地点名称
关于如何在视图中打印ilan.name和相关位置.name的任何想法
谢谢大家。我认为这是代码的相关部分
$query = $this->db
->select("ilan.*, places.name")
->from("ilan")
->join('places', 'places.id = ilan.ilan_city OR places.id = ilan.ilan_district OR places.id =ilan.ilan_street')
->order_by("gunceltarih DESC")
->limit(36)
->get();
我找到了一条出路。我不知道效率有多高,但对我来说很有效 我在控制器的索引函数中创建了一个函数,如下所示:
function index(){
//whatever here
function getPlace($e){
$ci = get_instance(); //to get properties of parent class
$query = $ci->estate_model->ilanSehir($e);
return $query;
}
//whatever here
}
function ilanSehir($e){
$query = $this->db->select("*")
->from("places")
->where("places_id",$e)
->get();
return $query->row(); //This will return one row so it must be row() instead of result()
然后,我在模型中放入一个函数,如下所示:
function index(){
//whatever here
function getPlace($e){
$ci = get_instance(); //to get properties of parent class
$query = $ci->estate_model->ilanSehir($e);
return $query;
}
//whatever here
}
function ilanSehir($e){
$query = $this->db->select("*")
->from("places")
->where("places_id",$e)
->get();
return $query->row(); //This will return one row so it must be row() instead of result()
}
在我看来,我用我想要的参数调用了函数:
<?php $place = getPlace($ilan->ilan_city);
echo $place->places_name;
?>
正如我之前所说,我不知道它的效率有多高,但它对我有效。希望能有帮助。如果我错了,请警告我
谢谢所有回答的人你有列名=gunceltarih吗?@jcho360是的,它保存更新日期。使用join
$this->db->join()
@Mike我想“join”对我不起作用。我有3个与“地点”相关的栏目。因此,我必须为每个“宜兰”行进行3次查询。“加入”不适合我的情况,因为我有3列与“地点”相关。我想我必须为每一个“宜兰”行做一个新的查询。但是我找不到方法我知道你有3列,这就是为什么你使用OR条件(或者如果你需要3个条件相等),请给出一个表的例子和你想要的结果,如果你需要一种非常特殊的查询,你需要自己编写SQL。