Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][SQL] update wielu rekordow w jednym zadaniu
Forum PHP.pl > Forum > Przedszkole
agataperz
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ć?
viking
Wiesz że masz to jako JSON? http://api.nbp.pl/api/exchangerates/tables/A?format=json
W jaki sposób sprawdzasz ilość zmodyfikowanych wierszy?
Pyton_000
A kolejny myk to użycie `INSERT INTO .... ON DUPLICATE KEY UPDATE`. Oczywiście odpowiednie indeksy (najlepiej unique na waluta)
agataperz
@viking nie znam json
@Pyton_000 na walucie mam ustawione unique
viking
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.