【问题标题】:How to display the data only once by using two query results如何使用两个查询结果只显示一次数据
【发布时间】:2019-04-17 07:18:08
【问题描述】:

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

控制器代码:

$this->db->where('billdate >=', $newDate);
$this->db->where('billdate <=', $newDate2);
$this->db->select('');
$this->db->from('purchaseitem');
$this->db->distinct();
//$this->db->join('purchasebill', 'purchasebill.no = purchaseitem.billno','left outer');
$this->db->join('itemmaster','itemmaster.itcode = purchaseitem.Product_Code','left outer');
$query = $this->db->get('')->result_array();
$data['query'] = $query;
$this->db->where('date >=', $newDate);
$this->db->where('date <=', $newDate2);
$this->db->select();
$this->db->from('purchasebill');
$this->db->order_by('voucherno');
$this->db->join('parmaster','parmaster.Pcode = purchasebill.partyname','left outer');
$query = $this->db->get('')->result_array();
$data['query1'] = $query;

$this->load->view('Receipt_View1', $data);

查看代码:

<?php $rowcount = 1 ?>                          
<?php foreach ($query1 as $row): ?>

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

            <?php endforeach ?> 
            <?php endforeach ?> 
        </tr></tr>
        <?php $total_qty=0; ?>  
    <?php foreach($query as $row): ?>
            <?php $total_qty += $row['Qty'];?>
        <?php endforeach ?>
        <?php $total_bundle=0; ?>   
    <?php foreach($query as $row): ?>
            <?php $total_bundle += $row['bundle'];?>
        <?php endforeach ?>

问题在于 purchaseitem 表,因为根据凭证,它必须在表上打印条目,但它正在打印从日期到现在可用的所有数据.. 我尝试通过放置 where 条件但它的结果表中没有任何内容..关于如何指定凭证号的任何想法..这是我的 where 代码$this-&gt;db-&gt;where('vocuerno','vno)..我在购买项目和购买账单表上都有凭证号

【问题讨论】:

  • 如果您可以在代码中突出显示问题的确切位置,它可能会帮助您在这里更快地得到答案。
  • 问题出在purchaseitem表中...

标签: php mysql codeigniter


【解决方案1】:

您需要在第二个查询中使用 GROUP_BY,而不是在第一部分。

尝试在此处添加它,从控制器代码的第 10 行开始显示

....

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

【讨论】:

  • 试过但没有得到预期的输出
猜你喜欢
  • 1970-01-01
  • 2017-08-11
  • 2015-08-10
  • 2015-12-11
  • 1970-01-01
  • 1970-01-01
  • 2012-05-13
  • 2021-09-09
  • 1970-01-01
相关资源
最近更新 更多