Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Pobieranie danych z JSON
ratusz
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 3.01.2015

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


Witam, potrzebuje pomocy, ponieważ potrzebuje dane informacje z tego linków które wyglądają podobnie do link, i potrzebuje danych które są zawarte w "median_price", mój skrypt wygląda następująco (wszystkie linki są pobierane z bazy).
  1. while($pojedynczy = $object->fetch_assoc()){
  2. $link = $pojedynczy['link'];
  3. $page = file_get_contents($link);
  4. preg_match('/\,"\median\_price\"\:\"\$\.+\"\}\//', $page, $matches);
  5. $cena = str_replace(array('"median_price":"','"}', "$"), "", $matches);
  6. $new1 = round($cena[0]*3.6*1.25/0.79*100, -2);
  7. $sql = "UPDATE `{$TABLE}` SET `cena` = {$new} WHERE `id` = {$pojedynczy['id']} LIMIT 1";
  8. $db->query($sql) or die("Database ERROR");
  9. }


Pozdrawiam i dziękuje za wszystkie udzielone odpowiedzi.
Go to the top of the page
+Quote Post
KsaR
post
Post #2





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

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


$arr=json_decode(file_get_contents(...), 1);
print_r($arr); //arr zawiera teraz zwykla php-ową tablice.

Ten post edytował Ksar 6.01.2015, 14:44:34
Go to the top of the page
+Quote Post
ratusz
post
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 3.01.2015

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


napotkałem kolejny problem, kod który używam to
  1. while($pojedynczy = $object->fetch_assoc()){
  2. $link = $pojedynczy['link'];
  3. $arr=json_decode(file_get_contents($link), 1);
  4. print_r($arr);
  5. preg_match("/\[median\_price\] => $.+\ )/", $arr, $matches);
  6. $cena = str_replace(array("[median_price] => "," ) ", "$"), "", $matches);
  7. $new = round($cena[0]*3.6*1.25/0.79*100, -2);
  8. $sql = "UPDATE `{$TABLE}` SET `cena` = {$new} WHERE `id` = {$pojedynczy['id']} LIMIT 1";
  9. $db->query($sql) or die("Database ERROR");
  10. }

Wyskakują mi błędy, nie mogę się z nimi uporać, a wujek google odprowadza do angielskich stron, z których nic nie potrafię wywnioskować. Błędy można zobaczyć pod tym linkiem.
http://dota2skins.pl/update/update.php
Go to the top of the page
+Quote Post
KsaR
post
Post #4





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

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


Cytat(ratusz @ 6.01.2015, 15:19:39 ) *
napotkałem kolejny problem, kod który używam to
  1. while($pojedynczy = $object->fetch_assoc()){
  2. $link = $pojedynczy['link'];
  3. $arr=json_decode(file_get_contents($link), 1);
  4. print_r($arr);
  5. preg_match("/\[median\_price\] => $.+\ )/", $arr, $matches);
  6. $cena = str_replace(array("[median_price] => "," ) ", "$"), "", $matches);
  7. $new = round($cena[0]*3.6*1.25/0.79*100, -2);
  8. $sql = "UPDATE `{$TABLE}` SET `cena` = {$new} WHERE `id` = {$pojedynczy['id']} LIMIT 1";
  9. $db->query($sql) or die("Database ERROR");
  10. }

Wyskakują mi błędy, nie mogę się z nimi uporać, a wujek google odprowadza do angielskich stron, z których nic nie potrafię wywnioskować. Błędy można zobaczyć pod tym linkiem.
http://dota2skins.pl/update/update.php

To moze przejdz kurs php od początku (tablice)
print_r zwraca tablice do wyswietlenia, dzieki jej wiadomo jak sie odwolac, nie trzeba zadnego str_replace.
Jesli chcesz wartosc [median_price]
Piszesz: $arr['median_price'];
Go to the top of the page
+Quote Post
ratusz
post
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 3.01.2015

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


Teraz strona wyskakuje z błędem ponieważ w zmienej jest zawarty znak dolara, nie mam pojęcia jak go usunąć, str_replace nie działa, zmiana typu zmiennej także, jakieś nakierowania?

  1. while($pojedynczy = $object->fetch_assoc()){
  2. $link = $pojedynczy['link'];
  3. $arr=json_decode(file_get_contents($link), 1);
  4. $cena1= $arr['median_price'];
  5. $cena = (string) $cena1;
  6. $string = str_replace('$', '', $cena);
  7. echo $string;


Co robić panie władzo? podany skrypt nie usuwa $.
Na stronie wyświetla się to tak.
$1,35$1.58$7.22$0.86$0.71$1.67$4.67
Go to the top of the page
+Quote Post
Pyton_000
post
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


bo to nie $ tylko
Kod
& #36;

bez spacji

Ten post edytował Pyton_000 6.01.2015, 17:41:12
Go to the top of the page
+Quote Post
ratusz
post
Post #7





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 3.01.2015

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


Dzięki, działa!

Pozdrawiam
Go to the top of the page
+Quote Post

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: 22.08.2025 - 20:09