如何在codeigniter中使用两个不同的表只显示一次数据



我正在准备从日期到日期输入的寄存器。。。显示用户从日期到日期所做的条目。。。我想显示凭证号、账单日期、数量、金额(存在于采购账单表中(和产品名称(存在于购买项目表中(。我想根据账单在同一行打印产品名称。。(为此,我使用组concat(。。。我的问题是所有的数据都显示多次。。我不知道我的代码中的错误在哪里。。为了只显示一次数据,必须对我的代码进行哪些更改。。下面我附上了我的代码。。帮助我

控制器代码:

$this->db->where('date >=', $newDate);
$this->db->where('date <=', $newDate2);
$this->db->select('*');
$this->db->from('purchasebill');
$this->db->order_by("voucherno", "asc");
$this->db->join('parmaster','parmaster.Pcode = purchasebill.partyname','left outer');
$this->db->select('GROUP_CONCAT(Prdtname)as itemname',false);
$this->db->order_by('vno','asc');
$this->db->group_by('vno,billno');
$this->db->from('purchaseitem');

$query = $this->db->get('')->result_array();    
$data ['query']= $query;

查看代码:

<?php $rowcount = 1 ?>                            
<?php foreach ($query as $row): ?>
<tr>
<td><?=$rowcount;?></td>
<td><?=$row['voucherno'];?></td>
<td><?=$row['date'];?></td>
<td><?=$row['PName'];?></td>
<td><?=$row['sqty'];?></td>
<td><?=$row['billtot'];?></td>
<td><?=$row['itemname'];?></td>
<?php $rowcount +=1?>
<br>
<?php endforeach ?> 
</tr>

我认为数据打印了多次,因为我使用了两个查询,但传递了相同的变量$data。。是否有可能在同一个视图页面上加载多个查询结果。。???

$this->db->where('date >=', $newDate);
$this->db->where('date <=', $newDate2);
$this->db->select('purchasebill.*,GROUP_CONCAT(parmaster.Prdtname)as itemname');
$this->db->from('purchasebill');
$this->db->join('parmaster','parmaster.Pcode = purchasebill.partyname','left outer');
$this->db->order_by('vno','asc');
$this->db->group_by('vno,billno');

$query = $this->db->get()->result_array();    
$data ['query']= $query;

是的,您可以执行不同的查询并将它们单独传递给视图:

$this->db->select('*');
$this->db->from('purchasebill');
$this->db->where('date >=', $newDate);
$this->db->where('date <=', $newDate2);
$this->db->order_by("voucherno", "asc");
$this->db->join('parmaster','parmaster.Pcode = purchasebill.partyname','left outer');
$query1 = $this->db->get()->result_array();
$this->db->select('GROUP_CONCAT(Prdtname) AS itemname',false);
$this->db->order_by('vno','asc');
$this->db->group_by('vno,billno');
$this->db->from('purchaseitem');
$query2 = $this->db->get()->result_array();  
$data['bills']= $query1;
$data['items']= $query2;
$this->load->view('your_view_path', $data);

然后在视图中,您可以访问$bills$items中的数据。我的建议是,你可以四处走走,只创建一个查询来获取你的所有信息。

最新更新