Bernd: Array mit Wert vergleichen

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.

  1. 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 , 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;

    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

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

    1. 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 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

      1. 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 from  temps where kennzahl = '$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

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)