Array mit Wert vergleichen
Bernd
- php
Hallo
ich habe einen Wert in einer Variablen a&. Dieser Wert soll mit einer Tabelle (MySql) verglichen werden und wenn er einer Zeile entspicht soll eine Aktion folgen.
Die Tabelle hat die Spaltenüberschriften
id , temp , kennzahl
Gefüllt ist sie mit 5 Zeilen. Wenn mein Wert (a$) nun zwischen 20 und 36 ist, dann entspricht das bspw. der dritten Zeile, was bedeutet das normal ausgegeben werden soll.
Wie kann ich das in PHP umsetzen?
Ich bin nun schonmal soweit, das ich grundsätzlich die Daten Abfragen kann, jedoch weiß ich nicht, wie ich das nuzen kann. Habe schon in anderen Foren gelesen und es mir damit "zusammengebastelt".
a$ = 24;
$abfrage ="select * FROM temps";
$staffel = mysql_query($abfrage);
while($row = mysql_fetch_array($staffel)) {
echo "Temp".$row[temp]."<br>in %: ".$[kennzahl];
}
Hoffentlich finde ich hier Hilfe.
Vielen Dank
Schönen Abend noch.
Hello,
ich habe einen Wert in einer Variablen a&. Dieser Wert soll mit einer Tabelle (MySql) verglichen werden und wenn er einer Zeile entspicht soll eine Aktion folgen.
Die Tabelle hat die Spaltenüberschriften
id , temp , kennzahlGefüllt ist sie mit 5 Zeilen. Wenn mein Wert (a$) nun zwischen 20 und 36 ist, dann entspricht das bspw. der dritten Zeile, was bedeutet das normal ausgegeben werden soll.
Wie kann ich das in PHP umsetzen?
Ich bin nun schonmal soweit, das ich grundsätzlich die Daten Abfragen kann, jedoch weiß ich nicht, wie ich das nuzen kann. Habe schon in anderen Foren gelesen und es mir damit "zusammengebastelt".
a$ = 24;
In PHP fangen die Variablenbezichner mit dem Dollar-Zeichen an, also '$a'.
$abfrage ="select * FROM temps";
Die Abfrage könnte lauten:
$abfrage = "select id
, temp
, kennzahl
from temps
where kennzahl
= '$a'";
In diesem Fall würde die Datenbank alle Zeilen liefern, deren Kennzahl dem Wert von $a entsprechen.
Den '*' in der Abfrage anstelle einer genauen Spaltenliste zu benutzen, ist eigentlich nicht sehr sauber. Man sollte immer versuchen, die Ergebnismenge so klein wie möglich zu halten, sowohl in der Horizontalen (Spaltenliste), wie auch in der Vertikalen (Treffereingrenzung der Datensätze).
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Hallo,
vielen Dank für die Antwort. Soweit ist das klar, jedoch sind in der Spalte temp Werte als Maximalwert eingetragen. Das heißt, es muss verglichen werden ob der Wert der Variable $a kleiner oder gleich (<=) als Zeile 1 ist, oder ob der Wert größer als Zeile 1 oder kleiner als Zeile 2 ist. usw...
Wenn das eintrifft, dann soll die Kennzahl in Spalte Kennzahl ausgelesen werden.
Genau da komm ich nicht weiter.
Danke
Schönen Abend an alle..
Die Abfrage könnte lauten:
$abfrage = "select
id
,temp
,kennzahl
fromtemps
wherekennzahl
= '$a'";In diesem Fall würde die Datenbank alle Zeilen liefern, deren Kennzahl dem Wert von $a entsprechen.
Den '*' in der Abfrage anstelle einer genauen Spaltenliste zu benutzen, ist eigentlich nicht sehr sauber. Man sollte immer versuchen, die Ergebnismenge so klein wie möglich zu halten, sowohl in der Horizontalen (Spaltenliste), wie auch in der Vertikalen (Treffereingrenzung der Datensätze).
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.deTom
Hello,
vielen Dank für die Antwort. Soweit ist das klar, jedoch sind in der Spalte temp Werte als Maximalwert eingetragen. Das heißt, es muss verglichen werden ob der Wert der Variable $a kleiner oder gleich (<=) als Zeile 1 ist, oder ob der Wert größer als Zeile 1 oder kleiner als Zeile 2 ist. usw...
$abfrage = "select
id
,temp
,kennzahl
fromtemps
wherekennzahl
= '$a'";
Den nächst größeren Wert aus der Datenbank kannst Du abfragen mit:
select id
, temp
, kennzahl
from temps
where kennzahl
> '$a'
order by kennzahl
limit 1
oder den nächst kleineren mit
select id
, temp
, kennzahl
from temps
where kennzahl
< '$a'
order by kennzahl desc
limit 1
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom