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

标签 php mysql codeigniter group-concat

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

Controller 代码:

$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..是否有可能在同一个 View 页面上加载多个查询结果..???

最佳答案

$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;

关于php - 如何在 codeigniter 中使用两个不同的表只显示一次数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53239207/

相关文章:

mysql - 如何使用 GROUP BY(exec_datetime) 优化 COUNT(DISTINCT ip_address) 的性能

javascript - 动态加载图像缓慢,jquery,php

javascript - 表单 POST 未显示在 Controller 中

mysql - 不可能的条件 SQL 连接?

php - 显示来自内部联接的名称

javascript - 使用 PHP 在 HTML 中回显 css 和 js 的内容

php - 利用 Foreach 生成子菜单

javascript - 通过 javascript 进行 Grocery Crud url 重定向

php - php 中不显示表格的第一行

php - Symfony2 创建和下载 zip 文件