在透视行中显示按日期计数的php代码

在透视行中显示按日期计数的php代码,php,Php,数据库中的数据如下所示 列名 测量员姓名-瓦查尔 预订日期-varchar surveyor bookingdate receipt_no raj 19-03-2015 55 raj 19-03-2015 55 raj 19-03-2015 55 raj 19-03-2015 55 raj 19-03-2015 55 raj 19

数据库中的数据如下所示

列名 测量员姓名-瓦查尔

预订日期-varchar

surveyor   bookingdate     receipt_no

 raj       19-03-2015        55
 raj       19-03-2015        55
 raj       19-03-2015        55
 raj       19-03-2015        55
 raj       19-03-2015        55
 raj       19-03-2015        55

 raj       19-03-2015        56
 raj       19-03-2015        56
 raj       19-03-2015        56
 raj       19-03-2015        56
 raj       19-03-2015        56
 raj       19-03-2015        56

sudnyesh    20-03-2015       700
sudnyesh    20-03-2015       700
sudnyesh    20-03-2015       700
sudnyesh    20-03-2015       700
sudnyesh    20-03-2015       700
sudnyesh    20-03-2015       700

angel       24-03-2015        702
angel       24-03-2015        702
angel       24-03-2015        702
angel       24-03-2015        702
angel       24-03-2015        702
angel       24-03-2015        702
收据编号-varchar

surveyor   bookingdate     receipt_no

 raj       19-03-2015        55
 raj       19-03-2015        55
 raj       19-03-2015        55
 raj       19-03-2015        55
 raj       19-03-2015        55
 raj       19-03-2015        55

 raj       19-03-2015        56
 raj       19-03-2015        56
 raj       19-03-2015        56
 raj       19-03-2015        56
 raj       19-03-2015        56
 raj       19-03-2015        56

sudnyesh    20-03-2015       700
sudnyesh    20-03-2015       700
sudnyesh    20-03-2015       700
sudnyesh    20-03-2015       700
sudnyesh    20-03-2015       700
sudnyesh    20-03-2015       700

angel       24-03-2015        702
angel       24-03-2015        702
angel       24-03-2015        702
angel       24-03-2015        702
angel       24-03-2015        702
angel       24-03-2015        702
预期产量

但我的代码显示输出如下

有人能帮我显示我想要的正确输出吗

下面是我的代码

对于EX-在我的预期输出中

raj于2015年3月19日创建了2张收据55,56,因此我们在2015年3月19日下方的raj面前显示了总计2张收据

苏德涅什于2015年3月20日创建了1700张收据,因此我们在苏德涅什面前显示了2015年3月20日以下的总数1张收据,以此类推

请帮助我实现这一目标

<?php $book = $database->getRows("SELECT DISTINCT bookingdate FROM receipt_entry"); ?>
<?php $data = $database->getRows("select surveyor_name, count(DISTINCT receipt_no) As total,bookingdate from receipt_entry group by surveyor_name,bookingdate");  ?>
<table border="1px solid #666" style="text-align:center;" cellpadding='0' cellspacing='0'>
<thead>
    <tr>
        <th>Surveyor Name</th>
        <?php foreach($book as $date):?>
            <?php $dates[] = $date['bookingdate'];?>
            <th><?php echo $date['bookingdate'];?></th>
        <?php endforeach;?>
    </tr>
</thead>
<tbody>
    <?php $j = 0;?>
    <?php foreach($data as $key => $value):?>
        <?php $names[] = $value['surveyor_name'];?>
        <?php $uniValues = array_count_values($names);?>
        <?php if($uniValues[$value['surveyor_name']] == 1):?>
        <tr>
            <td>
                <?php echo $value['surveyor_name'];?>
            </td>
            <?php $i = 0;?>
            <?php foreach($book as $date):?>
                <td align="center">
                    <?php if($names[$i] == $data[$j]['surveyor_name']):?>
                        <?php echo $data[$j]['total'];?>
                    <?php else:?>
                        <?php foreach($data as $dat):?>
                            <?php if($dat['surveyor_name'] == $names[$j] && $dates[$i] == $dat['bookingdate']):?>
                                <?php echo $dat['total'];?>
                            <?php endif;?>
                        <?php endforeach;?>
                    <?php endif;?>
                </td>
                <?php ++$i;?>
            <?php endforeach;?>
        </tr>
        <?php endif;?>
        <?php ++$j;?>
    <?php endforeach;?>
</tbody>
</table>

瓦沙,我已经回答了你这个问题。你的数组是否按照我回答的要求正确格式化?可能重复的
<?php $book = $database->getRows("SELECT DISTINCT bookingdate FROM receipt_entry"); ?>
<?php $data = $database->getRows("select surveyor_name, count(DISTINCT receipt_no) As total,bookingdate from receipt_entry group by surveyor_name,bookingdate");  ?>
<table border="1px solid #666" style="text-align:center;" cellpadding='0' cellspacing='0'>
<thead>
    <tr>
        <th>Surveyor Name</th>
        <?php foreach($book as $date):?>
            <?php $dates[] = $date['bookingdate'];?>
            <th><?php echo $date['bookingdate'];?></th>
        <?php endforeach;?>
    </tr>
</thead>
<tbody>
    <?php $j = 0;?>
    <?php foreach($data as $key => $value):?>
        <?php $names[] = $value['surveyor_name'];?>
        <?php $uniValues = array_count_values($names);?>
        <?php if($uniValues[$value['surveyor_name']] == 1):?>
        <tr>
            <td>
                <?php echo $value['surveyor_name'];?>
            </td>
            <?php $i = 0;?>
            <?php foreach($book as $date):?>
                <td align="center">
                    <?php if($names[$i] == $data[$j]['surveyor_name']):?>
                        <?php echo $data[$j]['total'];?>
                    <?php else:?>
                        <?php foreach($data as $dat):?>
                            <?php if($dat['surveyor_name'] == $names[$j] && $dates[$i] == $dat['bookingdate']):?>
                                <?php echo $dat['total'];?>
                            <?php endif;?>
                        <?php endforeach;?>
                    <?php endif;?>
                </td>
                <?php ++$i;?>
            <?php endforeach;?>
        </tr>
        <?php endif;?>
        <?php ++$j;?>
    <?php endforeach;?>
</tbody>
</table>