我有一个名为 person 的表格,由id显示。此表包含许多列和一列名为 product_id 的列。还有第二个表产品,其中包含所有产品的名称。假设我在表产品中有一个字段名称为 rice 的产品,他的ID 4 位于person表中。当我显示人员表行时,我想显示米而不是他的 id 。
<?php
public function person()
{
$id= $this->uri->segment(3);
$query = $this->model_person->get_persons($id);
$data['all_persons'] =$query;
$this->load->view('admin/view_person', $data);
}
?>
模型get_person
public function get_persons($id)
{
$this->db->select("*");
$this->db->from('person');
$this->db->where('id',$id);
$query = $this->db->get();
return $query->result();
}
view_person.php
<?php foreach($all_persons as $p)
{
?>
<tr>
<th >Person name</th>
<td ><?=$p->name;?></td>
</tr>
<tr>
<th >Person affectation</th>
<td ><?=$p->affectation;?></td>
</tr>
<tr>
<th>Product name</th>
<td><?=$p->id_product;?></td>
<!--i want to dispay product name found in product table-->
</tr>
<?php
}
?>
答案 0 :(得分:1)
要获得此类输出,您需要在模型中运行连接查询。
public function get_persons($id)
{
$this->db->select("*");
$this->db->from('person');
$this->db->join('product', 'product.id= person.product_id');
$this->db->where('person.id',$id);
$query = $this->db->get();
return $query->result();
}
view_person.php中的只打印product_name而不是product_id
<tr>
<th>Product name</th>
<td><?=$p->product_name;?></td>
<!--i want to dispay product name found in product table-->
</tr>