如何在Codeigniter中使用引子键从子表中获取图像

时间:2019-05-15 19:28:07

标签: php codeigniter

我在数据库“ cardetails”,“ priceetails”和“ stockimages”中有三个表。

我在Codeigniter中使用join来获取三个表上方的所有记录。我从两个表中获取了数据,但无法从“ stockimages”中获取图像数据

表格详细信息:-

1. Cardetails
carid Make   Model  Color Body user_id
1     Hundai Varna  White Sand  1
2     Audi   A5     White Sand  1
3     BMW    A3     White Sand  1
4     Audi   A1     White Sand  1

2. Pricedetails
priceid carid minPrice MaxPrice
1         3   15000    22000

3. stockimaes
imgid carid imagesurl
1       3    url 1
2       3    url 2
3       3    url 3
4       3    url 4
5       3    url 5

我想在首页显示所有带有价格和图像的汽车。

public function allCarList($userid){
    $this->db->select('*');
    $this->db->from('cardetails as stock' );
    $this->db->where('stock.user_id', $usrid);
    $this->db->where('deleteid != ',1);
    $this->db->join('price as p', 'stock.carid = p.carid', 'LEFT');
    $this->db->order_by('carid','desc');
    $q = $this->db->get()->result();
    return $q;
} 

无法获取所有与同一个龋齿相关的行的图像。

1 个答案:

答案 0 :(得分:0)

您的代码的问题是您没有加入另一个表。您仅包括这2个(cardetailsprice)的加入:

$this->db->from('cardetails as stock' );
$this->db->join('price as p', 'stock.carid = p.carid', 'LEFT');

您需要做的是添加第二个联接,以连接第三个表,通常可以使用以下语法:

$this->db->select('*');    
$this->db->from('table1');
$this->db->join('table2', 'table1.id = table2.id');
$this->db->join('table3', 'table1.id = table3.id');
$query = $this->db->get();

以您的示例为例,

$this->db->from('cardetails as stock' );
$this->db->join('price as p', 'stock.carid = p.carid');
$this->db->join('stockimaes as img', 'stock.carid = img.carid');