PHP och mySQL tabell från Logtemp

Generella Windowsfrågor och frågor gällande Windowsmjukvara som saknar egen forumkategori skall postas i detta forum
Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
Användarvisningsbild
HUSKii
Tar hemautomation på allvar
Inlägg: 270
Blev medlem: 16 jun 2008, 20:08
Ort: Oskarström

PHP och mySQL tabell från Logtemp

Inlägg av HUSKii »

Hej!

Jag har en mySQL tabell från Logtemp som ser ut så här i mySQL Query Browser:

Kod: Markera allt

DATETIME, 390008013607FC10, 260008015FD83A10, 0900080136274610, 55000000B6649E26-H
'2009-10-03 11:29:01', 25.3, 9.9, 25.7, 42.3
Fråga #1
Går det att enbart med ett litet PHP script hämta det lägsta och/eller det högsta värdet från varje givare?
ex:

Kod: Markera allt

Givare                 Högsta      Lägsta
390008013607FC10:......27,4 °C     24,9
260008015FD83A10:......10,5 °C     1,3 °C
0900080136274610:......26,5 °C     25.3 °C
55000000B6649E26-H: ...45.3 %      42,3 %
Eller krävs det lite extra jobb med mySQL? Såsom skapa en extra tabell eller något annat.

Fråga #2
Hur gör jag för att visa en rad med de senaste värdet?
ex:

Kod: Markera allt

Givare 1:.........25.3 °C
Givare 2:.........10.7 °C
Givare 3:.........25.7 °C
Luftfuktiget 1:...43.6 %
Avläst: 2009-10-03 11:45:02
EDIT:
Fråga #3
Hur hämtar man senaste värdet från rad X i kolumn Y.

MVH Henrik.
PeterT
Tar hemautomation på allvar
Inlägg: 70
Blev medlem: 05 nov 2007, 08:01
Ort: Sala

Re: PHP och mySQL tabell från Logtemp

Inlägg av PeterT »

Hej
Så här ser min kod ut för att hämta det senaste värdet hos en givare. Koden är baserad på hur MSure sparar data i MySQL och där har varje givare sin tabell. Du behöver ju anpassa det till hur Logtemp sparar i databasen men det är en ledtråd iallafall.

För att hämta senaste värdet:
<?PHP
$query_r = "SELECT (kolumnnamn) FROM tabellnamn ORDER BY TimeStamp DESC LIMIT 1;";
$nuvalue = mysql_query($query_r) or die("SQL error: ".mysql_error());
while($nu = mysql_fetch_array($nuvalue)){
echo round($nu['temperature'],1);
}
?>

Minsta värdet, för maxvärde skriv MAX istället för MIN:
<?PHP
$data = mysql_query("SELECT MIN(kolumnnamn) FROM tabell;");
while ($r = mysql_fetch_array($data)) {
echo round($r['MIN(temperature)'],1);
}
?></td>

För att plocka en viss rad som uppfyller ett villkor så använd WHERE
$data = mysql_query("SELECT MIN(kolumnnamn) FROM tabell WHERE ................;");
PerM
Hemautomation - det är mer än en hobby
Inlägg: 822
Blev medlem: 23 feb 2007, 14:46
Ort: Vallentuna
Kontakt:

Re: PHP och mySQL tabell från Logtemp

Inlägg av PerM »

Otestat, men att få ut MAX/Min från flera kolumner ur samma tabell borde vara så här:

SELECT MAX(col1) as max1, MAX(col2) as max2, MAX(col3) as max1
FROM table
WHERE ......
Användarvisningsbild
HUSKii
Tar hemautomation på allvar
Inlägg: 270
Blev medlem: 16 jun 2008, 20:08
Ort: Oskarström

Re: PHP och mySQL tabell från Logtemp

Inlägg av HUSKii »

Provade med detta:

Kod: Markera allt

<?php

$opendb = mysql_connect("localhost", "användare", "lösenord") or die(mysql_error());
				mysql_select_db("logtemp") or die(mysql_error());

$data = mysql_query("SELECT MIN(0900080136274610) FROM temp;");
				while ($r = mysql_fetch_array($data))
				{
				echo round($r['MIN(temperature)'],1);
				}

// stänger databasen
mysql_close($opendb);
?>
Detta ger resultatet '0'

mySQL Query Browser
mySQL Query Browser

Man kanske ska gå över till MSure, verkar vara mycket bättre support på det programmet. :D
PerM
Hemautomation - det är mer än en hobby
Inlägg: 822
Blev medlem: 23 feb 2007, 14:46
Ort: Vallentuna
Kontakt:

Re: PHP och mySQL tabell från Logtemp

Inlägg av PerM »

MIN() utav ett tal - vilket ditt tabellnamn är - avrundat blir ju 0...

Du behöver innesluta kolumnnamnet inom `-tecken, alternativ prefixa namnet med "tableName."

Klart du ska gå över till MSure :)
Användarvisningsbild
HUSKii
Tar hemautomation på allvar
Inlägg: 270
Blev medlem: 16 jun 2008, 20:08
Ort: Oskarström

Re: PHP och mySQL tabell från Logtemp

Inlägg av HUSKii »

PerM skrev:Klart du ska gå över till MSure :)
Har installerat MSure nu, och efter att ha installerat om det 1 gång, så fungerar det, det puttas in lite värden i mySQl databasen. :)

Så nu ska jag leka lite. :P
Skriv svar