Hallo zusammen,
beisse mir gerade die Zähne aus.
- Aufgabe: MySQL: Maximalwert eines Tages soll mit weiteren Werten in ein Array ausgegeben werden.
Das ganze soll in einer For-Schleife für fortlaufende Tage wiederholt werden.
- Problem: Wenn ich einen Tag in der Zeitauswahl fix vorgebe funktioniert das. Wenn ich aber die Tagesauswahl mit "mktime(0,0,0,1,1+$i,2013)" hochzähle ändert sich zwar der Start (und Endzeitunkt), aber die Daten kommen immer vom 1. Tag.
- Frage: Wie bekomm ich die Abfrage in der Schleife so hin, dass die Daten jedes Tages ausgegeben werden?
Anbei das Script. Hoffe, dass jemand Lust u Zeit hat mal drüber zu schauen und mir einen Tipp zu geben.
PHP-Code:
<?
//------------------------------------------------------------------------------
// MySQL DB-Daten:
$MySQLConn=mysql_connect($MySQLIP.$MySQLPort, $MySQLAdmin, $MySQLAdminPW);
$db = $IPS_DB;
$SQLTable = $TBL_Wetter_Sonnenlauf_Std;
//------------------------------------------------------------------------------
// MySQL Verbindung prüfen
if (!$MySQLConn)
{IPS_LogMessage('FillTable', 'error= '. mysql_error());}
$db_selected = mysql_select_db($db, $MySQLConn);
if (!$db_selected)
{IPS_LogMessage('FillTable', 'opendb= '. mysql_error());}
//------------------------------------------------------------------------------
//Abfrage und Ausgabe für X Tage
for ($i = 0; $i <=2; $i++)
{
//echo 1+$i ."\n";
//Zeitraum festlegen
$CfgDaten['StartTime'] = mktime(0,0,0,1,1+$i,2013);
$CfgDaten['EndTime'] = mktime(23,59,59,1,1+$i,2013);
$SQLStart = "'".date("Y-m-d H:i:s",$CfgDaten["StartTime"])."'";
$SQLEnd = "'".date("Y-m-d H:i:s",$CfgDaten["EndTime"])."'";
echo $SQLStart." ".$SQLEnd."\n";
//in der Abfrage soll der höchste Wert von Elevation im Zeitraum ausgewählt werden und die entsprechenden Werte von DatumZeit und Azimut
$sql_Ergebnis = mysql_query("SELECT Elevation, DateX, Azimut
FROM " . $SQLTable . " " .
"WHERE DateX >= ".$SQLStart." AND DateX <= ".$SQLEnd.
" ORDER BY Elevation desc LIMIT 1".
";")
OR die("'".$sql_Ergebnis."':".mysql_error());
while($data = mysql_fetch_array($sql_Ergebnis, MYSQL_ASSOC))
{
$Ergebnis[] = array("ElevMax"=>$data['Elevation'], "DateX"=>$data['DateX'], "AzimElevMax"=>$data['Azimut']);
Print_r("Var i = ".$i."\n");
print_r($Ergebnis[0]);
}
$sql_Ergebnis = "";
}
//------------------------------------------------------------------------------
//MySQL Verbindung beenden
mysql_close($MySQLConn);
?>
Und hier die Ausgabe;
PHP-Code:
'2013-01-01 00:00:00' '2013-01-01 23:59:59'
Var i = 0
Array
(
[ElevMax] => 20.1278
[DateX] => 2013-01-01 11:00:00
[AzimElevMax] => 172.625
)
'2013-01-02 00:00:00' '2013-01-02 23:59:59'
Var i = 1
Array
(
[ElevMax] => 20.1278
[DateX] => 2013-01-01 11:00:00
[AzimElevMax] => 172.625
)
'2013-01-03 00:00:00' '2013-01-03 23:59:59'
Var i = 2
Array
(
[ElevMax] => 20.1278
[DateX] => 2013-01-01 11:00:00
[AzimElevMax] => 172.625
)
Danke für Eure Hilfe im Voraus,
Grüsse, Wolfgang