Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [XML][SQL][PHP]Problem z czytaniem
Trecco
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 11.08.2009

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


Witam, chciałbym napisać skrypt który pobierał by dane z takich plików xml http://clodogame.fr/dev/api/user.97.xml pobierając id (np.97) z pliku tekstowego. Następnie wrzucało dane do sql. Wyskakuje mi błąd:

  1. Warning: simplexml_load_file(http://clodogame.fr/dev/api/user.70%0D%0A.xml) [function.simplexml-load-file]: failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error in C:\Strony\sql.php on line 15
  2.  
  3. Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "http://clodogame.fr/dev/api/user.70%0D%0A.xml" in C:\Strony\sql.php on line 15
  4. Nie mozna przeniesc gracza ! Table 'myhighscore.gracze' doesn't exist


Skrypt wygląda tak:
  1. <?
  2. $sql['server'] = "db4free.net:3306";
  3. $sql['username'] = "trecco";
  4. $sql['password'] = "********";
  5. $sql['database'] = "myhighscore";
  6.  
  7. mysql_connect($sql['server'],$sql['username'],$sql['password']) or die("Nie mozna polaczyc sie z serwerem! Blad: ".mysql_error());
  8. mysql_select_db($sql['database']) or die("Nie znaleziono bazy danych! Blad: ".mysql_error());
  9.  
  10. $plik = file("id.txt");
  11. array_shift($plik);
  12.  
  13. foreach($plik as $p)
  14. {
  15. $xml = simplexml_load_file("http://clodogame.fr/dev/api/user.".$p.".xml");
  16.  
  17. $id = $xml['id'];
  18. $name = $xml['name'];
  19. $points = $xml['points'];
  20. $position = $xml['position'];
  21. $gangname = $xml->gang['name'];
  22.  
  23. $query = mysql_query("INSERT INTO `gracze` (`id`,`name`,`points`,`position`,`gangname`) VALUES('NULL','$id','$name','$points','$position','$gangname')") or die("Nie mozna przeniesc gracza $name! ".mysql_error());
  24. echo "<p>Gracz $name zostal przeniesiony poprawnie!</p>";
  25. }
  26. ?>


Plik tekstowy:
  1. 70
  2. 117
  3. 97
  4. 89
  5. 575
  6. 28
  7. 95
  8. 528
  9. 489
  10. 263
  11. 130
  12. 568
  13. 96
  14. 645
  15. 341
  16. 608
  17. 262
  18. 42
  19. 381
  20. 91


Strasznie byłbym wdzięczny za pomoc.

Ten post edytował Trecco 22.08.2009, 12:06:39
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
emp
post
Post #2





Grupa: Zarejestrowani
Postów: 195
Pomógł: 14
Dołączył: 12.01.2006
Skąd: Gotham City

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


Ładujesz zewnętrzny zasób w takim wypadku może się zdarzyć że nie zawsze będzie on dostępny.
Serwer będzie za bardzo obciążony i zapytanie do niego się nie powiedzie lub inna przykra dla twojego skryptu sytuacja.

Musisz coś zaradzić na taką sytuacje:
1) wyłączasz warningi w php.ini i olewasz (IMG:style_emoticons/default/winksmiley.jpg)
2) dodajesz małpe przed simplexml_load_file() gdzie się da i olewasz (IMG:style_emoticons/default/winksmiley.jpg)
3) obsługujesz tą sytuacje zwyczajnie sprawdzając czy połączenie się powiodło i inne testy wykonujesz
4) obsługujesz tą sytuacje profesjonalnie robisz blok try cach rzucasz wyjątkami i je łapiesz ( obsługujesz )


Warning: simplexml_load_file(http://clodogame.fr/dev/api/user.70%0D%0A.xml) [function.simplexml-load-file]: failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error in C:\Strony\sql.php on line 15

To oznacza że metoda simplexml_load_file() nie mogła załadować zewnętrznego zasobu.
Zrób kilka testów z jednym xml-em. Mi na 10 prób jednego nie załadował.
Wpisz adresy z palucha do metody simplexml_load_file() sprawdź czy działa.

Nie mozna przeniesc gracza ! Table 'myhighscore.gracze' doesn't exist
Po prostu nie możesz dodać danych do nieistniejącej tablicy w bazie danych. Jakby nie było taka tablica nie istnieje.

Sprawdziłem wszystkie te xml-e są dostępne przez web i są poprawne.

Ten post edytował emp 22.08.2009, 13:19:08
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 15.10.2025 - 17:28