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

时间:2017-10-14 05:13:41

标签: php mysql null record zero

这是我的问题,我想从数据库中获取数据,我在一个表中显示它们,表中包含日期和另一个值都基于该日期所以我的问题是当我得到数据时,如果日期没有某个标题中的值没有返回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解决方案。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

注意:停止使用已弃用的await

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

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