如果没有记录,则返回一个值(MYSQL + PHP)



这是我的问题,我想从数据库中获取数据,并在表中显示它们,该表包含日期和另一个基于该日期的值,所以我的问题是当我获取数据时,如果日期在某些标题中没有值,它没有返回为 0(零),这会影响我的表并且它正在排序, 这是我的查询

        <?php
            $confirmquery= " SELECT ddate , count(status) as stat from booking_vip where status = 'CONFIRM' AND ddate >= '$date_1' AND ddate <= '$date_2'  GROUP BY ddate";
            $confirmrun=mysql_query($confirmquery);
            while($confirmrow=mysql_fetch_array($confirmrun)){
                        ?>
            <td>
                <?php
                echo $confirmrow['stat'];
                 ?>
            </td>
            <?php   } ?>

查询工作正常,但是当某个日期没有记录时,它没有返回任何内容,因此它通过使记录位于错误的日期来破坏我的表..

所以请帮助我,我搜索了很多,尝试了很多函数,如ifnull和isnull以及COALESCE,它们都对我不起作用,是否有任何php解决方案,

我得到什么作为示例

Date        status
2016-03-14  CONFIRM
2016-03-17  CONFIRM

我想要的是:

Date        Total
2016-03-14  CONFIRM
2016-03-15  0
2016-03-16  0
2016-03-17  CONFIRM

我想在没有任何价值的缺失日期中为零,我在社区中看到这个问题,但没有获得任何PHP解决方案或简单的MySQL解决方案。

感谢您的帮助。

注意:停止使用已弃用Mysql

有多种方法可以做到这一点

$confirmquery = " SELECT ddate , count(status) as stat from booking_vip where status = 'CONFIRM' AND ddate >= '$date_1' AND ddate <= '$date_2'  GROUP BY ddate";
$confirmrun = mysql_query($confirmquery);
$numRow = mysql_num_rows($confirmrun);
if($numRow > 0){
    //your code
}else{
    echo 0;
}

   $count = count($confirmrun);
   if($count > 0){
        //your code
    }else{
        echo 0;
    }

相关内容

  • 没有找到相关文章

最新更新