Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][PHP]Pobieranie ostatniego rekordu z pliku json
brzanek
post 4.10.2018, 10:23:46
Post #1





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

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


Witam w jaki sposób mogę pobrać ostatni rekord z pliku json.
Tak wygląda plik.
  1. "windMax": [{
  2. "date": "2018-10-01T16:30:00Z",
  3. "value": 5.40
  4. }, {
  5. "date": "2018-10-01T16:40:00Z",
  6. "value": 5.50
  7. }, {
  8. "date": "2018-10-01T16:50:00Z",
  9. "value": 6.60
  10. }, {
  11. "date": "2018-10-01T17:00:00Z",
  12. "value": 6.30
  13. }, {
  14. "date": "2018-10-01T17:10:00Z",
  15. "value": 5.70
  16. }, {
  17. "date": "2018-10-01T17:20:00Z",
  18. "value": 5.0
  19. }, {
  20. "date": "2018-10-01T17:30:00Z",
  21. "value": 4.40
  22. }
  23. ]

Dane zmieniają się a więc po dacie to nie wypali ostatni rekord nie zawsze będzie 7 jak w tym przypadku może być 8 lub 10 albo inny.
Czy jest na to jakaś rada?
Go to the top of the page
+Quote Post
werdan
post 4.10.2018, 10:36:02
Post #2





Grupa: Zarejestrowani
Postów: 354
Pomógł: 100
Dołączył: 14.11.2013
Skąd: Płock

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


  1. var last = jsonData.windMax[jsonData.windMax.length-1];


Czy o to chodziło?
Go to the top of the page
+Quote Post
brzanek
post 4.10.2018, 11:05:44
Post #3





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

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


Albo coś żle robię albo to niedziała.
  1. $urll = file_get_contents('http://plik.json');
  2. $urll = json_decode($urll, true);
  3. $ostatni_wiatr = $urll['windMax.length-1'];
  4. echo "<div>Najsilniejszy ".$ostatni_wiatr." km/h</div>";

Go to the top of the page
+Quote Post
werdan
post 4.10.2018, 11:47:30
Post #4





Grupa: Zarejestrowani
Postów: 354
Pomógł: 100
Dołączył: 14.11.2013
Skąd: Płock

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


  1. $ostatni_wiatr = end($urll['windMax']);
Go to the top of the page
+Quote Post
brzanek
post 4.10.2018, 12:11:33
Post #5





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

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


Nadal nic nie podaje jedynie Array
Go to the top of the page
+Quote Post
werdan
post 4.10.2018, 12:37:51
Post #6





Grupa: Zarejestrowani
Postów: 354
Pomógł: 100
Dołączył: 14.11.2013
Skąd: Płock

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


Zapodaj tego plik.json, bo tak to jedynie się można domyślać struktury pliku.
Go to the top of the page
+Quote Post
brzanek
post 5.10.2018, 13:34:32
Post #7





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

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


To bez znaczenia jaka jest struktura pliku json
W taki sposób pobieram ostatni rekord ale nie zawsze ostatni rekord to 998. Czasem się zdarza że ostatni rekord będzie 1000 i już takie zapytanie nie pobierze tego.
  1. $urll = file_get_contents('http://plik.json');
  2. $urll = json_decode($urll, true);
  3. $minuty00 = '998';
  4. for($i=997; $i < $minuty00; $i++){
  5. $wiatr00 = $urll['windMax'][$i]['value'];
  6. }
  7. echo "<div>".$wiatr00."km/h</div>";

Z pewnością jest inny sposób na pobranie zawsze ostatniego i np. przedostatniego rekordu.

Może coś takiego
  1. <p id="demo"></p>
  2. var fruits = ["Banana", "Orange", "Apple", "Mango"];
  3. document.getElementById("demo").innerHTML = fruits.pop();

Tylko jak to przerobić pod json i php.

Ten post edytował brzanek 5.10.2018, 13:35:18
Go to the top of the page
+Quote Post
viking
post 5.10.2018, 14:06:22
Post #8





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


  1. var_dump(end($urll['windMax']));


--------------------
Go to the top of the page
+Quote Post
brzanek
post 5.10.2018, 15:15:35
Post #9





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

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


Prawie jest ok tylko chodzi mi konkretnie o wartość w polu value
"value": 4.40
Jak to wyświetlić w php za pomocą zmiennej?
  1. $ostatni_wiatr = (end($urll['windMax']['value']));
  2. echo "<div>Najsilniejszy ".$ostatni_wiatr."</div>";
Go to the top of the page
+Quote Post
nospor
post 5.10.2018, 15:31:38
Post #10





Grupa: Moderatorzy
Postów: 36 449
Pomógł: 6292
Dołączył: 27.12.2004




Dobrze od czasu do czasu zobaczyc co robi kod podany przez osobe starajaca sie pomoc a nie na slepo walic jak popadnie :/

$ostatni_rekord = end($urll['windMax']);
$ostatni_wiatr = $ostatni_rekord['value'];


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

"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
brzanek
post 5.10.2018, 15:46:06
Post #11





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

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


Super o to chodziło.
A jeszcze jedno jak pobrać teraz przedostatni?
Go to the top of the page
+Quote Post
werdan
post 6.10.2018, 19:52:23
Post #12





Grupa: Zarejestrowani
Postów: 354
Pomógł: 100
Dołączył: 14.11.2013
Skąd: Płock

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


  1. $ostatni_rekord = end($urll['windMax']);
  2. $ostatni_wiatr = $ostatni_rekord['value'];
  3.  
  4. $przedostatni_rekord = prev($urll['windMax']);
  5. //lub
  6. $przedostatni_rekord = $urll['windMax'][count($urll['windMax'] - 2)];
  7. $przedostatni_wiatr = $przedostatni_rekord['value'];
  8.  
Go to the top of the page
+Quote Post
brzanek
post 6.10.2018, 19:58:57
Post #13





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

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


Wyskakuje błąd
Fatal error: Uncaught Error: Unsupported operand types in /home/brzanek/public_html/2018/pogo/dane/index.php:67 Stack trace: #0 {main} thrown in /home/brzanek/public_html/2018/pogo/dane/index.php on line 67
To jest ta linia
  1. $przedostatni_rekord = $urll['windMax'][count($urll['windMax'] - 2)];
Go to the top of the page
+Quote Post
werdan
post 6.10.2018, 20:02:53
Post #14





Grupa: Zarejestrowani
Postów: 354
Pomógł: 100
Dołączył: 14.11.2013
Skąd: Płock

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


Zrobiłem błąd.

Poprawny przykład:
  1. $przedostatni_rekord = $urll['windMax'][count($urll['windMax']) - 2];

Go to the top of the page
+Quote Post
brzanek
post 6.10.2018, 20:14:48
Post #15





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

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


Super wielkie dzięki za pomoc plusik lecie do ciebie.
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: 23.04.2024 - 11:06