Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][SQL] update wielu rekordow w jednym zadaniu
agataperz
post 2.09.2017, 23:49:48
Post #1





Grupa: Zarejestrowani
Postów: 181
Pomógł: 0
Dołączył: 24.03.2009
Skąd: Hamburg DE

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


Witam,
chciałabym aby do bazy sql codziennie nadpisywały się kursy walut i stworzyłam skrypt:

  1. <?php
  2.  
  3. function nbp2()
  4. {
  5. $subject = file_get_contents('http://nbp.pl/Kursy/KursyA.html');
  6. preg_match('/kursy\/xml\/(.*)\.xml\"/', $subject, $matches);
  7. $name = $matches[1];
  8. $file_name = "http://www.nbp.pl/kursy/xml/$name.xml";
  9.  
  10. $content = file_get_contents($file_name);
  11.  
  12. $xml = new SimpleXMLElement($content);
  13.  
  14. foreach ($xml->pozycja as $pos)
  15. {
  16. $sql .= "update kurs_walut set wartosc='".str_replace(",",".",$pos->kurs_sredni)."', data='".$xml->data_publikacji."' where waluta='".$pos->kod_waluty."';";
  17.  
  18. }
  19.  
  20. return $sql;
  21. }
  22.  
  23. $sqlnbp = nbp2();
  24. echo $sqlnbp;
  25. require ('../serwer.php');
  26. mysql_query($sqlnbp);
  27.  
  28. ?>


niestety serwer sql zwraca mi komunikat:
  1. # MySQL zwrócił pusty wynik (zero wierszy).


Jeżeli wprowadzę tylko jeden rekord baza sql modyfikuje rekord.
Nie chce tylko wprowadzić mi wszystkich rekordów jednocześnie. Co mogłam źle zrobić?
Go to the top of the page
+Quote Post
viking
post 3.09.2017, 05:57:31
Post #2





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

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


Wiesz że masz to jako JSON? http://api.nbp.pl/api/exchangerates/tables/A?format=json
W jaki sposób sprawdzasz ilość zmodyfikowanych wierszy?


--------------------
Go to the top of the page
+Quote Post
Pyton_000
post 3.09.2017, 07:12:22
Post #3





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

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


A kolejny myk to użycie `INSERT INTO .... ON DUPLICATE KEY UPDATE`. Oczywiście odpowiednie indeksy (najlepiej unique na waluta)
Go to the top of the page
+Quote Post
agataperz
post 3.09.2017, 08:43:09
Post #4





Grupa: Zarejestrowani
Postów: 181
Pomógł: 0
Dołączył: 24.03.2009
Skąd: Hamburg DE

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


@viking nie znam json
@Pyton_000 na walucie mam ustawione unique
Go to the top of the page
+Quote Post
viking
post 3.09.2017, 09:08:32
Post #5





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

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


Jakoś szczególnie znać nie musisz http://php.net/manual/en/function.json-decode.php
json_decode($daneznbp, true) i masz tablicę zwykłą. Napisz zapytanie jaki podał @Pyton_000. Jeśli będzie klucz to zrobi update, jak nie to insert.


--------------------
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: 25.04.2024 - 10:56