php代码在fromdate和todate之间打印1

时间:2015-05-20 12:15:59

标签: php mysql

表名收据 coupondate - varchar

coupondate    customer      
 02-04-2015     A    
 05-04-2015     B    

如果用户在表格中选择fromdate = 01-04-2015,todate = 30-04-2015,然后点击提交..然后我会显示fromdate和todate之间的所有日期,如下所示......

Customer  01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29   30
  A           p  p  p  p p  p  p  p   p  p  p   p  p  p  p  p  p  p  p  p  p  p   p p  p  p  p  p   p   
  B                   p  p  p  p  p   p  p  p   p  p  p  p  p  p  p  p  p  p  p  p  p  p p  p   p   p

现在我需要将这个日期与优惠券栏目相匹配......

FOR EX - 在上表中客户A出现在2015年4月2日..所以我需要在02-04到30之间的客户A下面显示p ..

对于客户B ......

PLZ帮助我实现预期的输出...

以下代码我用于在标题行中显示天数..

<?php
$startdate = $_POST['fromdate']; 
$enddate = $_POST['todate'];
$start = date('d', strtotime($startdate));
$end=date('d', strtotime($enddate));
?>
代码下方的

会在标题行中打印从01到30的天数。

<?php for ($x = $start; $x <= $end; $x++) {?>
    <th width="58%"><?php echo $x; ?></th>
    <?php } ?>

下面是我的SQL查询...

SELECT RE.*,min(RE.coupondate) As mindate,max(RE.coupondate) As Maxdate FROM receipt_entry RE LEFT JOIN city_master CM ON RE.city_name = CM.id WHERE CM.cityname = :cityname AND str_to_date(RE.coupondate,'%d-%m-%Y') BETWEEN :fromdate AND :todate GROUP BY RE.receipt_no

下面的代码用于在所有日子之后回显... ...

   <?php  if (is_array($data)) { foreach($data as $row) {   ?>
    <tbody>
        <tr>                    
            <td><?php echo htmlspecialchars($row['customer_name']); ?></td> 

            <?php for ($x = $start; $x <= $end; $x++) {?>                                   
            <?php if($row['mindate'] == $x) { ?>        

            <td>P</td>                      
            <?php } else { ?>           
            <?php } } ?>  
        </tr>
        <?php } }?>
    </tbody>

0 个答案:

没有答案