Php 从循环中输出值,结果值为零

Php 从循环中输出值,结果值为零,php,postgresql,Php,Postgresql,我目前正在尝试使用for循环输出数组的值 我尝试输出循环中运行的查询,结果得到24个查询的响应 1. 如果我将$I硬编码为0-23 echo$beam_total_array[0]['point_total']中的任意值;输出正确的值24次 即: 2. $i按预期返回0-23 如果我使用$I变量运行如1所示的代码,则24次输出为0 这里缺少什么?问题是您将$I声明为字符串,其值为0。删除$i:和fitacf_data.beam='左右的双引号$我 问题是您将$i声明为字符串,其值为0。删除$i:

我目前正在尝试使用for循环输出数组的值

我尝试输出循环中运行的查询,结果得到24个查询的响应

1. 如果我将$I硬编码为0-23 echo$beam_total_array[0]['point_total']中的任意值;输出正确的值24次

即:

2. $i按预期返回0-23

如果我使用$I变量运行如1所示的代码,则24次输出为0


这里缺少什么?

问题是您将$I声明为字符串,其值为0。删除$i:和fitacf_data.beam='左右的双引号$我

问题是您将$i声明为字符串,其值为0。删除$i:和fitacf_data.beam='左右的双引号$我

在循环中运行db查询通常是错误代码的标志。您需要添加一些调试代码以查看$query并查看它是否符合预期。另外,正如Felippe所说,您需要重新思考您的代码。让数据库引擎完成繁重的工作,只返回您想要的结果,然后使用php脚本对其进行迭代。SQL数据库非常强大,速度也非常快,所以尽可能利用它们的处理能力,而不是使用PHP代码和一个接一个地调用查询,这是非常缓慢和有争议的$radar_array[0]['radar_abbrev'].”和fitacf_data.beam>=0和fitacf_data.beam<24通过分组…在循环中运行db查询通常是错误代码的迹象。您需要添加一些调试代码来查看$query,并查看它是否符合您的预期。另外,正如Felippe所说,您需要重新思考您的代码。让数据库引擎完成繁重的工作,只返回您想要的结果,然后使用php脚本对其进行迭代。SQL数据库非常强大,速度也非常快,所以尽可能利用它们的处理能力,而不是使用PHP代码和一个接一个地调用查询,这是非常缓慢和有争议的$雷达阵列[0]['radar_abbrev'].”和fitacf_data.beam>=0和fitacf_data.beam<24组由。。。
$number_of_beams = 24; 
    for ($i = 0; $i < $number_of_beams; $i++)
    {
      $query = "SELECT fitacf_data.time,
      SUM(fitacf_data.num_pts) AS point_total
      FROM 
      fitacf_data
      WHERE abbrev = '" . $radar_array[0]['radar_abbrev'] ."'
      AND fitacf_data.beam = '" . $i . "'
      GROUP BY fitacf_data.time";
      $result = pg_query($query) or die('Error: ' . pg_last_error());
      while ($row = pg_fetch_array($result)) {
        $beam_total_array[] = $row; 
      }
      echo $i
      echo $beam_total_array[0]['point_total'] . "<br><br>";
    }
for ($i = 0; $i < $number_of_beams; $i++)
{
  $query = "SELECT fitacf_data.time,
  SUM(fitacf_data.num_pts) AS point_total
  FROM 
  fitacf_data
  WHERE abbrev = '" . $radar_array[0]['radar_abbrev'] ."'
  AND fitacf_data.beam = '5'
  GROUP BY fitacf_data.time";
  $result = pg_query($query) or die('Error: ' . pg_last_error());
  while ($row = pg_fetch_array($result)) {
    $beam_total_array[] = $row; 
  }
  echo $i
  echo $beam_total_array[0]['point_total'] . "<br><br>";
}