Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] MAX z przedziału
brzanek
post
Post #1





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

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


Mam kolejny kłopot.
Powiedzcie mi dlaczego to nie chce mi zadziałać tak jak powinno.
Mam kod
  1. $start = strtotime("tomorrow 08:00");
  2. $koniec = strtotime("tomorrow 19:00");
  3.  
  4. $result = $mysqli->query("
  5. SELECT MAX(hwindGust) AS wiatrsr, t.hwindBearing,zt.kierunek, hid_miasto, htime, t.hwindGust,zw.sila_wiatru
  6. FROM prognoza_godzinowa AS t, kierunek_wiatru AS zt, sila_wiatru AS zw
  7. WHERE t.hwindBearing>=zt.od AND t.hwindBearing<zt.do AND t.hwindGust>=zw.od AND t.hwindGust<zw.do AND htime BETWEEN '".$start."' AND '".$koniec."' AND hid_miasto =9
  8. ");
  9. while ( $row = mysqli_fetch_array($result) ) {
  10. $wiatr = ''.round($row['wiatrsr'],1).'';
  11. }
  12. echo '<p>'.$wiatr.'</p>';

Kod powinien oddać najwyższą wartość w polu wiatrsr z danego przedziału zawartego pomiędzy $start a $koniec ale zwraca tylko pierwszą wartość z bazy i nie jest to najwyższa z danego okresu - dlaczego?

Takie zapytanie działa prawidłowo
  1. $result = $mysqli->query("SELECT MAX(hwindGust) AS wiatrsr FROM prognoza_godzinowa WHERE htime BETWEEN '".$start."' AND '".$koniec."' AND hid_miasto=9");
  2. while ( $row = mysqli_fetch_array($result) ) {
  3. echo '<p>'.round($row['wiatrsr'],1).'</p>';
  4. }

Ale potrzebne mi to w pierwszym kodzie.

Sory kod działa ale pokazuje inny błąd.
Obecnie najwyższa wartość pobierana w tym przedziale czasowym z bazy danych to wiatrsr = 77
Natomiast sila_wiatru przy 77 daje kolor czerwony a wyświetla z (powinno być czerwony)
sila_wiatru pobierana jest jako pierwsza z tego przedziału a nie jak powinno być maksymalna.
Jak to naprawić?

Ten post edytował brzanek 20.11.2018, 22:38:00
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
brzanek
post
Post #2





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

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


Trochę tego nie kumam
AND hid_city = 59) AS vv, brzanek AS brzan WHERE hcloudcover>=vv.clouds_from AND hcloudcover<vv.clouds_to\G
Skąd w twoim zapytaniu vv oraz brzan?
Nie wiem czy rozumiesz mój problem bo twój przykład chyba nie pokazuje tego co chcę osiągnąć albo ja czegoś tu nie czaję.
Go to the top of the page
+Quote Post

Posty w temacie
- brzanek   [MySQL][PHP] MAX z przedziału   20.11.2018, 22:11:28
- - Pyton_000   zamiast MAX użyj po prostu KodORDER BY `hwindG...   20.11.2018, 22:40:44
- - brzanek   Dzięki zadziałało Ale teraz mam inny problem muszę...   21.11.2018, 07:00:22
- - Neutral   [SQL] pobierz, plaintext SELECT SUM(tx.hcloudc...   21.11.2018, 14:08:35
- - brzanek   Ten kod nie działa. Podstawiłem tam swoje dane ale...   21.11.2018, 21:48:50
- - trueblue   Nie będzie działać, bo to, że dałeś alias dla sumy...   21.11.2018, 22:09:14
- - brzanek   Chcę aby sumowana wartość hcloudCover z przedziału...   21.11.2018, 22:16:46
- - trueblue   Suma w takim przypadku wykonuje się na rekordach, ...   21.11.2018, 22:34:00
- - brzanek   Czyli co muszę najpierw to dać [PHP] pobierz, plai...   21.11.2018, 22:42:28
- - Neutral   [SQL] pobierz, plaintext SHOW CREATE TABLE brzanek...   22.11.2018, 00:18:31
- - brzanek   Trochę tego nie kumam AND hid_city = 59) AS vv, br...   22.11.2018, 08:36:19
- - viking   https://en.wikipedia.org/wiki/Alias_(SQL)   22.11.2018, 08:59:10
- - brzanek   No fajnie tylko powiedzcie mi gdzie ja w tym wszys...   22.11.2018, 09:51:19
- - nospor   Naprawde nie widzisz SUM w tym zapytaniu? A to: s...   22.11.2018, 11:14:56
- - brzanek   Faktycznie jest ale mam z tym sposobem problem bo ...   22.11.2018, 11:47:16
- - nospor   CytatZa każdym razem pokazuje tylko pierwszą. A il...   22.11.2018, 11:59:13
- - Neutral   [SQL] pobierz, plaintext SELECT *, SUM(hcloudc...   22.11.2018, 12:08:32
- - brzanek   Pewnie macie rację ale zrobiłem to troszkę inaczej...   22.11.2018, 12:57:24


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

 



RSS Aktualny czas: 17.10.2025 - 12:26