Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Wyświetlanie danych z MySQL ale po spełnieniu kilku warunków.
Forum PHP.pl > Forum > Przedszkole
brzanek
Witam mam w bazie danych tabelę z prognozą pogody. W niej mam kolumny takie jak OPADY, ŚNIEG, WIATR itp.
Chciałbym wyświetlić te dane w php ale tylko wtedy kiedy OPADY przekroczą np. wartość 20 ŚNIEG kiedy przekroczy wartość np. 5 lub WIATR jeśli przekroczy np. 50. Jeśli w którejś z tych kolumn pojawiają się mniejsze wartości niż określone nie powinny wyświetlać się na stronie.
Mam nadzieję, że rozumiecie o co mi chodzi. Z góry dziękuję za pomoc.
nospor
yyy... to podchwytliwe pytanie??
..where kolumna1 > 40 and kolumna2 > 20 ......
Damonsson
Nie rozumiemy, zrób jakiś przykład danych wejściowych i pokaż co chcesz mieć na wyjściu. Z tego co zrozumiałem wystarczy Tobie zwykły OR, ale o to raczej byś nie pytał, bo to podstawy podstaw.
brzanek
Zapytanie powinno być chyba takie np. jeśli chodzi o wiatr
  1. SELECT * FROM `prognoza_choszczno` WHERE `wiatr` >50 ORDER BY `id` DESC LIMIT 1

Ale jak teraz zapisać kod php aby wyświetlo się tylko wtedy kiedy wiatr przekroczony wartości 50.
CuteOne
  1. $row = mysqli_query("SELECT * FROM `prognoza_choszczno` WHERE `wiatr` > 50 DESC LIMIT 1");
  2. $result = mysqli_fetch_assoc($row);
  3.  
  4. var_dump($result);
brzanek
Dałem coś takiego
  1. $result = mysql_query("SELECT * FROM prognoza_choszczno WHERE wiatr >50 ORDER BY id DESC LIMIT 1") or die(mysql_error());
  2. while($row = mysql_fetch_array($result)) {
  3. echo "<div class='choszcznoww' data-toggle='tooltip' data-placement='top' title='Wiatr: ".$row['wiatr']." km/h'><img src='images/uwaga.png'/></div>";
  4. }

Wyświetla się ikona z ostrzeżeniem że wietr przekroczył prędkość 50 ale jak daję kolejny warunek w nowym zapytaniu
  1. $result = mysql_query("SELECT * FROM prognoza_choszczno WHERE opady >20 ORDER BY id DESC LIMIT 1") or die(mysql_error());
  2. while($row = mysql_fetch_array($result)) {
  3. echo "<div class='choszcznoww' data-toggle='tooltip' data-placement='top' title='Opady: ".$row['opady']." mm'><img src='images/uwaga.png'/></div>";
  4. }

To pojawia się kolejny obrazek z ostrzeżeniem ale nawet wtedy kiedy nie zostaje spełniony warunek z opadami. Nawet jeśli wynoszą mniej niż 20 to i tak wyświeta się ikona - dlaczego?

Już wiem dlaczego tak się dzieje. Zapytanie pobiera ostatni rekerd gdzie zostało spełnione zapytanie. Więc jeśli w najnowszym id nie pojawił się wiatr lub opady które przekraczają pewną wartość to wyświetla się poprzedni rekodr gdzie ten warunek został spełniony.
A jak zrobić aby zawsze pobierało najnowsze id. Jeśli warunek nie zostanie spełniony to nic się nie pojawia.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.