php - 如何在codeigniter中使用两个不同的表只显示一次数据
问题描述
我正在准备注册从日期和至今的输入...显示用户从日期和至今所做的条目...我想显示凭证编号、账单日期、数量、金额(出现在购买账单表中)和产品名称(存在于purchaseitem 表中)我想根据账单在同一行打印产品名称..(为此我使用组连接)...我的问题是所有数据都显示多次..我不知道我的代码中的错误在哪里..必须对我的代码进行哪些更改才能仅显示一次数据..下面我附上了我的代码..帮帮我
控制器代码:
$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;
推荐阅读
- css - 如何解决 mat-datepicker-toggle 位置问题?
- reactjs - 如何修复:ReactDOM.render() - TS2345:“() => Element”类型的参数不可分配给“ReactElement”类型的参数
- angular - 我如何解决 E/launcher - 运行 ng e2e 时在 gitlab 作业上退出进程并显示错误代码 199
- mysql - 使用索引的慢 MySQL 查询
- ios - ionic3 ios13 InAppbrowser 崩溃
- asp.net-web-api - 用于 WebAPI 的 Xamarin.Form HttpClient 在 iOS 中失败
- python - Pandas - 如何仅加入第一场比赛并将其他比赛保留为0
- reactjs - react-redux-toastr:吐司出现时文本输入模糊
- php - 如何通过在 PHP 中添加 [ 从复选框表单结果中检索?
- unit-testing - 如何运行 Vue 单元测试?