虽然循环没有停止(PHP)

时间:2016-06-02 18:49:31

标签: php loops

我想按天,月,年为我的网站进行统计

所以首先我检查数据库是否为空,如果正确我今天插入日期,计数为1

但是例如如果我在数据库的最后一天是2016-03-28我需要添加到2016-03-31和2016-04-01 ..... 2016-04-30 ...等到今天的约会。

我做到但是我有一个问题,while循环并没有停止播种它的工作但是当他去了今天的约会时它并没有停止< / p>

<?php
while($rows['st_date'] != $date1 ){
    if($rows['st_date'] != $date1) {
        $akhir = $datedate1 - $date_day;
        $akhir_month = $date3 - $date_month;
        if($akhir_month != 1 && $akhir > 0) {
            $n = $akhir;
            for($j=1; $j<=$n; $j++){
                $date5 = ++$date_day;
                $date6 = $date_month;
                $date7 = $date_years;
                $final_date = $date7.'-'.$date6.'-'.$date5;
                $sql3 = "INSERT INTO statistics (st_date, count) values ('$final_date', '0')";
                mysqli_query($conn,$sql3);
            }
        }
        else if ($akhir_month > 1){
            $datemonth1 = ++$date_month;
            $date_day = 1;
            $datefinal = $date_years.'-'.$datemonth1.'-'.$date_day;

            $datedate1 =  date("t",strtotime($datefinal));
            $akhir = $datedate1 - 0;
            $n = $akhir;
            $datetest = $date_month;
            for($j=1; $j<=$n; $j++){
                $date5 = $j;
                $date6 = $datetest;
                $date7 = $date_years;
                $final_date = $date7.'-'.$date6.'-'.$date5;
                $sql3 = "INSERT INTO statistics (st_date, count) values ('$final_date', '0')";
                mysqli_query($conn,$sql3);
            }
        }
        else if ($akhir_month == 1) {
            $n = $resm;
            $i = 1;
            for($j=1; $j<=$n; $j++){
                $date5 = ++$i;
                $date6 = $date3;
                $date7 = $date_years;
                $final_date = $date7.'-'.$date6.'-'.$date5;
                $sql3 = "INSERT INTO statistics (st_date, count) values ('$final_date', '0')";
                mysqli_query($conn,$sql3);
            }
        }

        $sql3 = "UPDATE statistics SET count = '1' where st_date = '$date1'";
        mysqli_query($conn,$sql3);
    }

    else if($rows['st_date'] == $date1) {
        break;
    }
}

我想退出数据库中的最后一个日期==今天日期

1 个答案:

答案 0 :(得分:0)

$date1循环中$rows['st_date']while都没有变化。您告诉计算机在$rows['st_date']不等于$date1时继续经历该循环。鉴于这两个变量都不会改变,当程序进入while循环时,该语句将永远为真(无限循环),或者它将为false并跳过循环。

在你的while循环的某个地方,你需要有一行说明效果:

$date1 = "xxxx-xx-xx";

$rows['st_date'] = "xxxx-xx-xx";

$rows['st_date'] = $date1;

如果你能告诉我你想要做什么,我可以告诉你要编写什么代码。如果没有,我希望这有帮助。

第二点,else if语句将永远不会运行,因为if语句与while循环的条件相同。