php—如何使用两个查询结果只显示一次数据

krcsximq  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(300)

如何避免在视图页上重复打印数据..我在phpmyadmin中尝试了此查询它显示了正确的结果..但是我得到了多次打印的数据..如何避免..我尝试了
$this->db->distinct(); $this->db->group_by(vno).. 但是我没有得到预期的结果..帮我实现这个..这是我尝试过的代码:
控制器代码:

  1. $this->db->where('billdate >=', $newDate);
  2. $this->db->where('billdate <=', $newDate2);
  3. $this->db->select('');
  4. $this->db->from('purchaseitem');
  5. $this->db->distinct();
  6. //$this->db->join('purchasebill', 'purchasebill.no = purchaseitem.billno','left outer');
  7. $this->db->join('itemmaster','itemmaster.itcode = purchaseitem.Product_Code','left outer');
  8. $query = $this->db->get('')->result_array();
  9. $data['query'] = $query;
  10. $this->db->where('date >=', $newDate);
  11. $this->db->where('date <=', $newDate2);
  12. $this->db->select();
  13. $this->db->from('purchasebill');
  14. $this->db->order_by('voucherno');
  15. $this->db->join('parmaster','parmaster.Pcode = purchasebill.partyname','left outer');
  16. $query = $this->db->get('')->result_array();
  17. $data['query1'] = $query;
  18. $this->load->view('Receipt_View1', $data);


视图代码:

  1. <?php $rowcount = 1 ?>
  2. <?php foreach ($query1 as $row): ?>
  3. <tr>
  4. <td><?=$rowcount;?></td>
  5. <td><?=$row['voucherno'];?></td>
  6. <td><?=$row['date'];?></td>
  7. <td><?=$row['PName'];?></td>
  8. <?php $rowcount +=1?>
  9. <?php foreach ($query as $row): ?>
  10. <tr>
  11. <td><?=$row['itemname'];?></td>
  12. <td><?=$row['Qty'];?></td>
  13. <td><?=$row['bundle'];?></td>
  14. <?php endforeach ?>
  15. <?php endforeach ?>
  16. </tr></tr>
  17. <?php $total_qty=0; ?>
  18. <?php foreach($query as $row): ?>
  19. <?php $total_qty += $row['Qty'];?>
  20. <?php endforeach ?>
  21. <?php $total_bundle=0; ?>
  22. <?php foreach($query as $row): ?>
  23. <?php $total_bundle += $row['bundle'];?>
  24. <?php endforeach ?>

问题出在purchaseitem表中,因为根据凭证no,它必须在表上打印条目,但它正在打印从日期到日期的所有可用数据。。我试着放一个where条件,但是它没有从表中得到任何结果..关于如何指定凭证号有什么想法吗..这是我的where代码 $this->db->where('vocuerno','vno )…我在采购项目和采购账单表上都没有凭证

7nbnzgx9

7nbnzgx91#

您需要在第二个查询中使用groupby,而不是在第一个部分中。
试着在这里添加它,从控制器代码的第10行开始显示

  1. ....
  2. $this->db->where('date >=', $newDate);
  3. $this->db->where('date <=', $newDate2);
  4. $this->db->from('purchasebill');
  5. $this->db->order_by('voucherno');
  6. $this->db->group_by('voucherno'); // <- HERE
  7. $this->db->join('parmaster','parmaster.Pcode = purchasebill.partyname','left outer');
  8. $query = $this->db->get('')->result_array();
  9. $data['query1'] = $query;

相关问题