PHP - 数组元素问题


PHP - array element issue

首先,我对PHP没有任何经验。我有 2 个数组 - 最小压力和最大压力。它们都从数据库中访问数据并创建一个简单的xml文件,如下所示:-

<pressuremaxhourly>1010,1009,1009,1009,1008,1008,1007,1005,1004,1003,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1001,1001,1001</pressuremaxhourly>
<pressureminhourly>1001,1009,1009,1008,1008,1006,1005,1004,1003,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1001,1001,1001,1001,1001</pressureminhourly>

问题是,如您所见,最小数组的第一个值始终等于最大数组的最后一个值(在本例中为"1001"(。这些数组每半小时左右就会被新值覆盖一次,但问题仍然存在。这是我使用的代码:-

$MaxPressure="select hour(datetime) AS hour, max(BarometricPressure) as MAXBP from minute WHERE DATETIME
BETWEEN (CURDATE() + INTERVAL (SELECT hour(NOW())) hour - INTERVAL 24 hour)
AND ((CURDATE() + INTERVAL (SELECT hour(NOW()))hour))
group by hour
order by (CURDATE() + INTERVAL (SELECT hour(NOW())) hour - INTERVAL 24 hour)";
$MaxPressureResult = mysql_query($MaxPressure) or  die('Failed to query'.mysql_error());
while ($row = mysql_fetch_object($MaxPressureResult)) {
    $maxpressure[]=$row->MAXBP;
}
$MinimumPressure="select hour(datetime) AS hour, min(BarometricPressure) as MINBP from minute WHERE DATETIME
BETWEEN (CURDATE() + INTERVAL (SELECT hour(NOW())) hour - INTERVAL 24 hour)
AND ((CURDATE() + INTERVAL (SELECT hour(NOW()))hour))
group by hour
order by (CURDATE() + INTERVAL (SELECT hour(NOW())) hour - INTERVAL 24 hour)";
$MinimumPressureResult = mysql_query($MinimumPressure) or  die('Failed to query'.mysql_error());

while ($minrow = mysql_fetch_object($MinimumPressureResult)) {
    $minimumpressure[]=$minrow->MINBP;
}

这是用于创建 xml 文件的代码:-

$dom = new DOMDocument(); 
$root = $dom->createElement( "weatherdata" );
$dom->appendChild( $root );  
$item = $dom->createElement( 'item', "" );  
$root->appendChild($item);
$maxpressure = $dom->createElement( 'pressuremaxhourly', "$maxpressure[0],$maxpressure[1],$maxpressure[2],$maxpressure[3],$maxpressure[4], etc....for all values );  
$item ->appendChild($maxpressure);
$minimumpressure = $dom->createElement( 'pressureminhourly', "$minimumpressure[0],$minimumpressure[1],$minimumpressure[2],$minimumpressure[3],$minimumpressure[4], etc....for all values );  
$item ->appendChild($minimumpressure);
$dom->formatOutput = true;
$dom->save('Hourly.xml') 

注意:我已经检查了数据库中的数据,它是正确的,所以很明显是脚本出了问题。很抱歉冗长的问题和代码示例,希望有人可以提供帮助。

#####$$$$ 更新 $$$$$$####

SQL脚本似乎不是问题。我将间隔保留为 24,当我在 SQL 工作台中运行 SQL 脚本时,它会加载正确的结果。

但是,当它从上面的脚本运行时,第一个元素始终等于最后一个元素。即。(最小压力[0] == 最小压力[23](

还有什么想法吗?

如何像这样创建 xml 文件:

$dom = new DOMDocument(); 
$root = $dom->createElement( "weatherdata" );
$dom->appendChild( $root );  
$item = $dom->createElement( 'item', "" );  
$root->appendChild($item);
$maxpressure = $dom->createElement( 'pressuremaxhourly', implode(",",$maxpressure) );  
$item ->appendChild($maxpressure);
$minimumpressure = $dom->createElement( 'pressureminhourly', implode(",",$minpressure));  
$item ->appendChild($minimumpressure);
$dom->formatOutput = true;
$dom->save('Hourly.xml')