<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File : Temp_Min_Max.ips.php
Trigger :
Interval :
*/
/* Datenbankserver - In der Regel die IP */
$db_server = "localhost";
/* Datenbankname */
$db_name = "ipsdata";
/* Datenbankuser */
$db_user = "root";
/* Datenbankpasswort */
$db_passwort = "root";
/* Erstellt Connect zu Datenbank her */
$db = @MYSQL_CONNECT($db_server,$db_user,$db_passwort);
$db_select = @MYSQL_SELECT_DB($db_name);
$date=date('"Y-m-d"');
$query1 ="SELECT min(KS300_Temp) FROM data where date=$date";
$query2 ="SELECT max(KS300_Temp) FROM data where date=$date";
$query3 ="SELECT avg(KS300_Temp) FROM data where date=$date";
echo $query1;
$tempmin = mysql_query($query1);
$tempmax = mysql_query($query2);
$tempavg = mysql_query($query3);
echo $tempmin;
echo $tempmax;
echo $tempavg;
$tempmin = round($tempmin,2);
$tempmax = round($tempmax,2);
$tempavg = round($tempavg,2);
SetValueFloat("TempMin", $tempmin);
SetValueFloat("TempMax", $tempmax);
SetValueFloat("TempAvg", $tempavg);
?>
Der Wert für Query1 ist SELECT min(KS300_Temp) FROM data where date=„2006-10-20“. Das sollte also richtig sei, doch bemomme ich als Werte nur „Resource id #3“ für $tempmin.
Wo liegt denn wohl der Fehler? In PHPMyAdmin funktioniert die Abfrage.
An den Kopf schlag… Hast recht! Das fehlt ja völlig…
Meine aktive PHP-Zeit ist schon ne Weile her… Wird mal wieder Zeit für nen Auffrischungskurs…
versuchs so oder so ähnlich:
$query1 ="SELECT min(KS300_Temp) as Minimal FROM data where date=$date";
$tempmin = mysql_query($query1);
while($row = mysql_fetch_array($tempmin))
{
echo $row['Minimal'];
}
<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File : Temp_Min_Max.ips.php
Trigger :
Interval :
*/
$MySQLHost="localhost";
$username="root";
$password="root";
function dbopen(){
global $MySQLHost,$username,$password;
$link = mysql_connect($MySQLHost, $username, $password) or die("Keine Verbindung möglich!");
mysql_select_db("ipsdata") or die("Auswahl der Datenbank fehlgeschlagen");
return $link;
}
// Datenbank oeffnen
$link=dbopen();
$date=date('"Y-m-d"');
$query1 ="SELECT min(KS300_Temp) FROM data where date=$date";
$query2 ="SELECT max(KS300_Temp) FROM data where date=$date";
$query3 ="SELECT avg(KS300_Temp) FROM data where date=$date";
$tempmin = mysql_query($query1);
$tempmax = mysql_query($query2);
$tempavg = mysql_query($query3);
while ($rowmin = mysql_fetch_array($tempmin, MYSQL_BOTH)) {
$Tempmin=$rowmin[0];
}
while ($rowmax = mysql_fetch_array($tempmax, MYSQL_BOTH)) {
$Tempmax=$rowmax[0];
}
while ($rowavg = mysql_fetch_array($tempavg, MYSQL_BOTH)) {
$Tempavg=$rowavg[0];
}
mysql_close($link);
$Tempmin = round($Tempmin,1);
$Tempmax = round($Tempmax,1);
$Tempavg = round($Tempavg,1);
SetValueFloat("TempMin", $Tempmin);
SetValueFloat("TempMax", $Tempmax);
SetValueFloat("TempAvg", $Tempavg);
?>
Kurze Erklärung wofür das Ganze.
Das Script greift auf die eine SQL Datenbank zu die mit dem SQL-Script von elektrofreak gefüttert wird. Als ergebnis bekomme ich den Maximum-, Minimum-, und Durchschnittswert des jeweiligen Tages. Die Werte lasse ich mir dann über den Designer anzeigen.
MYSQL_BOTH kannste dir sparen - ist die Standardeinstellung fürs fetch_array. Alles was du weglässt verwirrt nicht mehr unnötig wenn du in nem Jahr oder so nochmal drauf schaust.