在codeigniter中通过id获取记录

时间:2014-08-11 08:57:23

标签: codeigniter join return

我根据产品的ID

在列中传递值时遇到问题

连接表正在运行但返回所有列值。 我认为解决方案很简单,但我无法实现。 请帮忙解决这个问题?

这是表格

TABLE:tbl_lining

ID, 文章, 描述, 观察

表格:产品

[Table Products - picture](http://www.webmark.com.pt/pics/products.png)

模型中使用的函数

MODEL

 public function getliningsale($id)
{
    $this->db->select('*');
    $this->db->from('products');
    $this->db->join('tbl_lining', 'products.lining=tbl_lining.id', 'left');
    $this->db->where('products.id', $id);  // Also mention table name here
    $query = $this->db->get();    
    if($query->num_rows() > 0)
        return $data->result();
}

CONTROLLER

function liningsale()
{   

$data['lining'] = $this->sales_model->getliningsale($id);
$this->load->view('add', $data);
}

尝试根据产品ID显示一条记录

VIEW

echo '<td><input class="span1 tran2" name="lining\'+ count +\'" type="text"';
echo 'value="';
 foreach ($liningsale as $valor) {
 echo $valor->article;
 echo '-';
 echo $valor->description; 
 echo '">';
 }

echo '</td>';

而不是显示所有记录

[Table Result - picture](http://www.webmark.com.pt/pics/result.png)

2 个答案:

答案 0 :(得分:0)

您在此处未收到任何值 ($id)

public function getliningsale()   {

修改模型代码,如下所示:

public function getliningsale($id)
{
    $this->db->select('*');
    $this->db->from('products');
    $this->db->join('tbl_lining', 'products.lining=tbl_lining.id', 'inner');
    $this->db->where('products.id', $id);  // Also mention table name here
    $query = $this->db->get();    
    if($query->num_rows() > 0)
        return $data->result();
}

答案 1 :(得分:-1)

if($query->num_rows() > 0)
        return **$data-**>result();

我认为你必须使用 $query->result() 并不是 $data->result