Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Porównywanie wartości
knypraca
post 16.02.2015, 15:14:51
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 9.11.2014

Ostrzeżenie: (0%)
-----


Witam!
Mam skrypt sprawdzający wartość, jeśli jest mniejsza załącza się alarm.
  1. if ($rzwlot[6] <= 120) {
  2. echo "<font color='red' >ALARM! Niski tlen ($rzwlot[6]) na sondzie ($rzwlot[2]) ALARM!</font><br>";
  3. $x = "ALARM!Wlot";
  4. $alarm = 1;
  5. }

W tej postaci wszystko działa rzwlot pokazuje wartośc "81.8 %sat" i uruchamia się alarm.
Chciałem mieć możliwość przestawiania/wyłączania alarmu.
Zrobiłem w mysql tabelkę alarmy.
Ściągam dane z niej:
  1. $zapytanie = "SELECT * FROM $tabela WHERE id = 1";
  2. $wynik = mysql_query($zapytanie);
  3. while ( $row = mysql_fetch_row($wynik) ) {

echo "$row[1]"; pokazuje mi wartość 120. Jeśli jednak próbuję
  1. if ($rzwlot[6] <= $row[1])

To alarm się nie uruchamia.
Dlaczego?
Próbowałem już nawet
  1. $bla = $row[1] - $rzwlot[6];
  2. echo "$row[1] - $rzwlot[6] = $bla<br>";
i ładnie mi minusuje (120 - 81.7 %sat = 38.3), natomiast jak row jest wstawione do warunku, to nie działa.
Prosiłbym o pomoc.

Go to the top of the page
+Quote Post
nospor
post 16.02.2015, 15:18:24
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




var_dump($rzwlot[6]);
var_dump($row[1]);
if ($rzwlot[6] <= $row[1])

I pokaz dokladnie co to zwraca. Pamietaj, by ten kod wstawic bezposrednio przed IF


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
knypraca
post 16.02.2015, 15:49:05
Post #3





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 9.11.2014

Ostrzeżenie: (0%)
-----


  1. string(9) "81.3 %sat" string(3) "120" WLOT TLEN - W normie
Go to the top of the page
+Quote Post
nospor
post 16.02.2015, 15:50:24
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Kurcze, ale ty masz porownywac liczby a nie teksty...
81.3 %sat - przeciez to tekst a nie liczba...

zrzutuj na INT obie wartosci, potem porownuj. Teraz porownujesz tekst z tekstem, to logiczne ze nie dziala jak trzeba


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
knypraca
post 16.02.2015, 16:09:54
Post #5





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 9.11.2014

Ostrzeżenie: (0%)
-----


No ale mnie zastanawia dlaczego jak podstawiam liczbę 120 to wszystko działa jak należy. Tak samo z równaniem, które również wykonuje się poprawnie.
Czy jest jakaś możliwość zamiany tego na samą liczbę?
Akurat daną rzwlot pobieram z preg_match :/

Edit:
Dobra mam smile.gif
$rzwlot = (int) $rzwlot[6];
Podziękował smile.gif

Ten post edytował knypraca 16.02.2015, 16:13:05
Go to the top of the page
+Quote Post
nospor
post 16.02.2015, 16:11:45
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
No ale mnie zastanawia dlaczego jak podstawiam liczbę 120 to wszystko działa jak należy
Bo masz jawnie podane, ze to liczba i wowczas php sam w tle rzutuje tekst na liczbe.

Tak ma byc:
if (((int)$rzwlot[6]) <= ((int)$row[1]))


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
knypraca
post 16.02.2015, 16:23:20
Post #7





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 9.11.2014

Ostrzeżenie: (0%)
-----


  1. $rzwloty = (float) $rzwlot[6];
  2. if ($rzwloty <= $row[1]) {
  3. echo "<font color='red' >ALARM! Niski tlen ($rzwlot[6]) na sondzie ($rzwlot[2]) ALARM!</font><br>";

Ten kod mi chodzi ładnie.
Jest jakaś równica między tym co podałeś?
No może jest ciut dłuższy smile.gif

btw. row[x] jest już int'em wprost z bazy.

Ten post edytował knypraca 16.02.2015, 16:24:04
Go to the top of the page
+Quote Post
nospor
post 16.02.2015, 16:24:12
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Jest jakaś równica między tym co podałeś?

Taka, ze ja rzutuje na int a ty na float. Naprawde tego nie widzisz? tongue.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
knypraca
post 16.02.2015, 17:10:15
Post #9





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 9.11.2014

Ostrzeżenie: (0%)
-----


Nie no luzik smile.gif to widziałem smile.gif wolę float używać smile.gif dzięki jeszcze raz za pomoc smile.gif
SOLVED!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 13:30