Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CodeIgniter-通过另一个查询从数据库中选择';s结果_Php_Codeigniter - Fatal编程技术网

Php CodeIgniter-通过另一个查询从数据库中选择';s结果

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

如果之前有人问我,请原谅,但我找不到要搜索的相关关键字。我会尽力解释我的问题

我有名为“ilan”和“places”的DB表。在“宜兰”表中,有3列保存着地方的ID——城市、地区、街道

我想学习如何在视图中打印ilan.name和相关的places.name

我有一个控制器,比如:

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。