我试图通过发送ID从上一个表UI单击“打开”按钮后,从两个表中获取数据。 例如
<a name="Open" href="<?php echo base_url('welcome/WellProfile/'.$post->Id) ?>">
因此,我有两个表-“ WellDataA”和“ WellDataB”,我想通过WellName(column)获取WellDataB数据与WellDataA匹配的数据。
Example:
WellDataA:
Id Platform WellName
.
.
4 ZE ZE-A
5 ZE ZE-B
6 ZE Ze-B
.
.
WellDataB:
Id WellName CompleteDate
1 ZE-A 12/3
2 ZE-B 14/5
3 ZE-C 20/6
到目前为止,这是我的查询方式,但最终出现错误
public function get_news_by_id($Id = 0)
{
if ($Id === 0)
{
$query = $this->db->get('WellDataA');
return $query->result_array();
}
$this->db->select('*');
$this->db->from('WellDataA');
$this->db->join('WellDataB','WellDataA.WellName =
WellDataB.WellName','INNER');
$query = $this->db->get_where('WellDataA', array('Id' => $Id));
return $query->row_array();
}
当在ZE-A上单击“打开”按钮时,我希望输出将显示ZE,ZE-A,12/3。但是实际输出是ZE,仅ZE-A。提前非常感谢您!:)
答案 0 :(得分:0)
首先,很抱歉,如果我的解决方案不好, 但我建议您将表的结构更改为:
WellDataA:
Id Platform WellDataB
.
.
4 ZE 1
5 ZE 2
6 ZE 3
.
.
WellDataB:
Id WellName CompleteDate
1 ZE-A 12/3
2 ZE-B 14/5
3 ZE-C 20/6
由于我假设所使用的模型是关系模型,因此首先必须实现的是使表全部具有关系性。而不是将WellDataA和WellDataB与WellDataA内部的WellDataB中的ID连接。
答案 1 :(得分:0)
尝试一下,您的问题在get_where()中,所以我将其删除并重写了
public function get_news_by_id($Id = 0)
{
if ($Id === 0)
{
$query = $this->db->get('WellDataA');
return $query->result_array();
}
$this->db->select('a.Id,a.Platform,a.WellName,b.Id,b.CompleteDate');
$this->db->from('WellDataA a');
$this->db->join('WellDataB b','a.WellName = b.WellName','INNER'); //changes
$this->db->where('b.Id',$Id); //changes
$query = $this->db->get();
if ($query->num_rows() > 0) {
return $query->row_array();
}else{
return array();
}
}
答案 2 :(得分:0)
我认为您只需要删除一些代码即可。只需尝试这段代码
public function get_news_by_id($Id = 0)
{
if ($Id === 0)
{
$query = $this->db->get('WellDataA');
return $query->result_array();
}
$this->db->join('WellDataB','WellDataA.WellName =
WellDataB.WellName','INNER');
$query = $this->db->get_where('WellDataA', array('Id' => $Id));
return $query->row_array();
}