まず、私は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」)と等しいことです。これらの配列は30分ごとに新しい値で上書きされますが、問題は依然として存在します。これが私が使用するコードです:-
$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スクリプトを実行すると、正しい結果が読み込まれます。
ただし、上記のスクリプトから実行すると、最初の要素は常に最後の要素と等しくなります。IE。(minpressure [0] == minpressure [23])
それ以上の考えはありますか?