mysqli查询不会在while循环中更新


mysqli query does not update in while loop

我正在构建一个脚本来显示一些24小时图表。我正在尝试制作12张图表。我收集的每五分钟的数据集都有一张24小时(最后一小时)的图表。我正在运行一个问题,我的mysql命令不会更新$hour_position。我读过很多while循环内部while循环问题,并尝试构建foreach替代方案,还尝试重置查询数组,但这些都不起作用。任何可以解决这个问题的评论或链接到另一个线程都将不胜感激。提前谢谢。

$hour_position = 00;
$htime = -1;
$date = date('Y-m-d H:i:s');
$date = strtotime($date);
$date = strtotime($htime." day", $date);
$date = date('Y-m-d H:i:s',$date);
while($hour_position < 60){
    $price_history_qry = mysqli_query($con,"SELECT * FROM `dbTable` WHERE `server_time` > '$date' AND EXTRACT(MINUTE FROM `server_time`) like $hour_position ORDER BY `server_time` ASC");
    while($result = mysqli_fetch_array($price_history_qry)){
        //Create a couple of arrays to build a chart. 
    }
    //Build chart here
    echo $chart;
    $hour_position = $hour_position +05;
}

试着把$hour_position放在类似的报价中

      ' $hour_position ' 

或者你可以使用

      ". $hour_position ." 

您的查询有一个小错误。单引号内的变量将不会作为变量进行计算。检查一下。您需要更改select查询,如下所示。

$price_history_qry = mysqli_query($con,"SELECT * FROM `dbTable` WHERE `server_time` > '".$date."' AND EXTRACT(MINUTE FROM `server_time`) like ".$hour_position." ORDER BY `server_time` ASC");

我在你的代码中没有找到任何更新查询。正如您所说,您正在while循环中使用更新查询。因此,首先检查变量是否有值,然后检查它是否像下面那样进入while循环。

    $result = mysqli_fetch_array($price_history_qry)    
    var_dump($result);    
    while($result){
           //Create a couple of arrays to build a chart. 
           var_dump("entered");
   }

尝试使用var_dump()函数进行调试。

希望它能帮助你。