Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Pobieranie rekordów w wyznaczonym przedziale
brzanek
post
Post #1





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

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


Witam pobieram dane z bazy danych które są w przedziale od wczorajszego dnia od godziny 20:00 do dzisiejszego dnia do godziny 07:00
Mam takie zapytanie.
  1. $start = '20:00';
  2. $koniec = '06:00';
  3. $dzienwczorajszy = date('Y.m.d', strtotime("-1 day"));
  4. $koniecd = "".date("Y.m.d")."";
  5.  
  6. $result = $mysqli->query("SELECT * FROM dane WHERE godzina BETWEEN '".$start."' AND '".$koniec."' AND czas BETWEEN '".$dzienwczorajszy."' AND '".$koniecd."' AND id_miasto=1 ORDER BY temp DESC LIMIT 10");
  7. while ( $row = mysqli_fetch_array($result) ) {
  8. echo "<div><p>".$row['temp']."</p><br></div>";
  9. }

W bazie danych mam kolumny godzina w formie YYYY.MM.DD i czas w formie HH:MM ale to zapytanie nie zwraca mi wyników.
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%)
-----


Dobra zmieniłem to trochę. Dodałem do bazy danych kolumnę z DATETIME
Mam teraz takie zapytanie
  1. $dzienwczorajszy = date('Y-m-d 20:00:00.000000', strtotime("-1 day"));
  2. $koniecdt = date("Y-m-d 07:00:00.000000");
  3. $result = $mysqli->query("
  4. SELECT CONCAT('Darłowo'), MIN(wiatrmax) AS min, godzina FROM dane WHERE dataczas BETWEEN '".$dzienwczorajszy."' AND '".$koniecdt."' AND id_miasto=1
  5. UNION
  6. SELECT CONCAT('Świnoujście'), MIN(wiatrmax) AS min, godzina FROM dane WHERE dataczas BETWEEN '".$dzienwczorajszy."' AND '".$koniecdt."' AND id_miasto=2
  7. UNION
  8. SELECT CONCAT('Gorzów Wielkopolski'), MIN(wiatrmax) AS min, godzina FROM dane WHERE dataczas BETWEEN '".$dzienwczorajszy."' AND '".$koniecdt."' AND id_miasto=3
  9. UNION
  10. SELECT CONCAT('Kołobrzeg'), MIN(wiatrmax) AS min, godzina FROM dane WHERE dataczas BETWEEN '".$dzienwczorajszy."' AND '".$koniecdt."' AND id_miasto=4
  11. UNION
  12. SELECT CONCAT('Koszalin'), MIN(wiatrmax) AS min, godzina FROM dane WHERE dataczas BETWEEN '".$dzienwczorajszy."' AND '".$koniecdt."' AND id_miasto=6
  13. UNION
  14. SELECT CONCAT('Trzebież'), MIN(wiatrmax) AS min, godzina FROM dane WHERE dataczas BETWEEN '".$dzienwczorajszy."' AND '".$koniecdt."' AND id_miasto=8
  15. UNION
  16. SELECT CONCAT('Resko'), MIN(wiatrmax) AS min, godzina FROM dane WHERE dataczas BETWEEN '".$dzienwczorajszy."' AND '".$koniecdt."' AND id_miasto=9
  17. UNION
  18. SELECT CONCAT('Miastko'), MIN(wiatrmax) AS min, godzina FROM dane WHERE dataczas BETWEEN '".$dzienwczorajszy."' AND '".$koniecdt."' AND id_miasto=12
  19. UNION
  20. SELECT CONCAT('Szczecinek'), MIN(wiatrmax) AS min, godzina FROM dane WHERE dataczas BETWEEN '".$dzienwczorajszy."' AND '".$koniecdt."' AND id_miasto=15
  21. UNION
  22. SELECT CONCAT('Wierzchowo'), MIN(wiatrmax) AS min, godzina FROM dane WHERE dataczas BETWEEN '".$dzienwczorajszy."' AND '".$koniecdt."' AND id_miasto=17
  23. UNION
  24. SELECT CONCAT('Szczecin'), MIN(wiatrmax) AS min, godzina FROM dane WHERE dataczas BETWEEN '".$dzienwczorajszy."' AND '".$koniecdt."' AND id_miasto=19
  25. UNION
  26. SELECT CONCAT('Trzcińsko'), MIN(wiatrmax) AS min, godzina FROM dane WHERE dataczas BETWEEN '".$dzienwczorajszy."' AND '".$koniecdt."' AND id_miasto=21
  27. UNION
  28. SELECT CONCAT('Przelewice'), MIN(wiatrmax) AS min, godzina FROM dane WHERE dataczas BETWEEN '".$dzienwczorajszy."' AND '".$koniecdt."' AND id_miasto=22
  29. UNION
  30. SELECT CONCAT('Piła'), MIN(wiatrmax) AS min, godzina FROM dane WHERE dataczas BETWEEN '".$dzienwczorajszy."' AND '".$koniecdt."' AND id_miasto=23
  31. UNION
  32. SELECT CONCAT('Krzyż'), MIN(wiatrmax) AS min, godzina FROM dane WHERE dataczas BETWEEN '".$dzienwczorajszy."' AND '".$koniecdt."' AND id_miasto=24
  33. ORDER BY min DESC LIMIT 15");

Powinno pokazać rekodry z przedziału od wczorajszego dnia od godziny 20:00 do dzisiejszego dnia do godziny 07:00 ale pojawiają się tylko rekordy z godziny 20:00
Jak daję takie zapytanie
  1. $dzienwczorajszy = date('Y-m-d 20:00:00.000000', strtotime("-1 day"));
  2. $koniecdt = date("Y-m-d 07:00:00.000000");
  3. $result = $mysqli->query("
  4. SELECT * FROM dane WHERE dataczas BETWEEN '".$dzienwczorajszy."' AND '".$koniecdt."' ORDER BY dane.wiatrmax DESC ORDER BY min DESC LIMIT 15");

To pojawiają się rekordy wyznaczone ale powtarza się id_miasto.
Jak mogę wykluczyć powtarzanie się tych samych id_miasto?
Go to the top of the page
+Quote Post

Posty w temacie


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: 9.10.2025 - 19:41