【问题标题】:Return a value if no record ( MYSQL + PHP ) [duplicate]如果没有记录则返回一个值(MYSQL + PHP)[重复]
【发布时间】:2018-03-26 06:01:09
【问题描述】:

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

感谢您的帮助。

【问题讨论】:

    标签: php mysql null record zero


    【解决方案1】:

    注意:停止使用 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;
        }
    

    【讨论】:

    • 感谢 urfusion 的帮助真的很感激,但我的问题是即使我这样做了它也没有像我想要的那样工作,我想要的是当其他条件我希望它返回 0 但它没有不过没用,如果你能帮上忙,我会很感激的。
    • @HazemMofeed : 只是 echo 0; 而不是 echo "no record"; 或者如果你要返回然后 return false;
    • 感谢兄弟的快速评论,但这并不容易,因为我试图回显以显示它,但我认为查询中的问题是它没有返回任何零,所以 if 条件将永远不要达到其他条件,我的问题是当该日期不包含值时我需要使查询返回零,希望我澄清一下,谢谢兄弟
    • 尝试传递不在您的数据库表中的静态date。例如$date_2 = '2017-10-14 00:00:00'。我认为它现在应该可以工作了。
    • 还是不行:(
    猜你喜欢
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-12
    • 2013-07-24
    • 2022-01-11
    相关资源
    最近更新 更多