[XML][SQL][PHP]Problem z czytaniem |
[XML][SQL][PHP]Problem z czytaniem |
22.08.2009, 11:55:17
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:
Skrypt wygląda tak:
Plik tekstowy:
Strasznie byłbym wdzięczny za pomoc. Ten post edytował Trecco 22.08.2009, 12:06:39 |
|
|
22.08.2009, 13:18:27
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 2) dodajesz małpe przed simplexml_load_file() gdzie się da i olewasz 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 -------------------- Temat zamykam i przenoszę do Bangladeszu.
To jest wiadomość śmierci jeśli ją czytasz to znaczy że pozostało ci 30 sekund życia, więc lepiej zacznij się modlić. |
|
|
22.08.2009, 14:12:45
Post
#3
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 11.08.2009 Ostrzeżenie: (0%) |
Już wszystko poprawiłem, okazało się, że źle było skonfigurowanie zapytanie dodania. Usunąłem też wszystkie "or die" tak jak mówiłeś, @ przed simplexml_load_file nie jest konieczna, nic nie wywala. Teraz kolejny błąd, skrypt dodaje czyste zapytanie, pod koniec nie pokazuje poprawnej zmiennej "$name", może to dlatego, że skrypt w ogóle nie czyta xml? Kod poprawiony:
Ten post edytował Trecco 22.08.2009, 18:17:37 |
|
|
23.08.2009, 12:49:44
Post
#4
|
|
Grupa: Zarejestrowani Postów: 195 Pomógł: 14 Dołączył: 12.01.2006 Skąd: Gotham City Ostrzeżenie: (0%) |
W $xml masz obiekt nie tablice simplexml poczytaj komentarze.
Nie powinno być tak
Przed zapisaniem do bazy daj echo i sprawdź czy dane w zmiennej $xml są takie jak w pliku. echo $xml->name; itd Będziesz wiedział gdzie masz błąd przed zapisaniem do bazy czy w trakcie zapisywania do bazy. Zrób jakieś testy np: if( $xml == false ) echo 'Wystapił bład !' ; Ten post edytował emp 23.08.2009, 13:02:30 -------------------- Temat zamykam i przenoszę do Bangladeszu.
To jest wiadomość śmierci jeśli ją czytasz to znaczy że pozostało ci 30 sekund życia, więc lepiej zacznij się modlić. |
|
|
23.08.2009, 12:58:27
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 675 Pomógł: 286 Dołączył: 15.06.2009 Skąd: Wieliczka Ostrzeżenie: (0%) |
W $xml masz obiekt nie tablice simplexml Nie powinno być tak
jego przykład też zadziała ale przy zapisie warto dodać prefix (String) |
|
|
23.08.2009, 19:57:26
Post
#6
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 11.08.2009 Ostrzeżenie: (0%) |
W $xml masz obiekt nie tablice simplexml poczytaj komentarze. Nie powinno być tak
Przed zapisaniem do bazy daj echo i sprawdź czy dane w zmiennej $xml są takie jak w pliku. echo $xml->name; itd Będziesz wiedział gdzie masz błąd przed zapisaniem do bazy czy w trakcie zapisywania do bazy. Zmieniłem na obiekty, dodałem Po
Ale nic nie wyświetliło. Jakiś sugestie? @EDIT Zrobiłem dziecinny błąd, zauważyłem, że w pliku xml istnieje jeszcze <user>
Dodało do bazy danych. Do wyświetlenia wystarczy
Ten post edytował Trecco 23.08.2009, 20:15:26 |
|
|
23.08.2009, 20:06:28
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 675 Pomógł: 286 Dołączył: 15.06.2009 Skąd: Wieliczka Ostrzeżenie: (0%) |
tak, skoro zakomentowałeś to foreach, to co tam robią te { i } ?
|
|
|
23.08.2009, 20:16:54
Post
#8
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 11.08.2009 Ostrzeżenie: (0%) |
Błąd:
Da coś to, że w plikach tekstowych będę miał linki a nie id? Dla mnie ta sama droga, ale czy to pomoże. @EDIT: Zmieniłem co nieco w zapytaniach, teraz będzie się aktualizowało, a nie dodawało nowe:
Tak, że 1 krok do przodu. Ten post edytował Trecco 23.08.2009, 20:41:46 |
|
|
23.08.2009, 20:50:16
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 675 Pomógł: 286 Dołączył: 15.06.2009 Skąd: Wieliczka Ostrzeżenie: (0%) |
zdecyduj się, czy robisz z tym foreach czy nie, jak dajesz to nie usuwaj tych { }
|
|
|
23.08.2009, 20:56:42
Post
#10
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 11.08.2009 Ostrzeżenie: (0%) |
zdecyduj się, czy robisz z tym foreach czy nie, jak dajesz to nie usuwaj tych { } Dodałem { } ale i tak jest błąd, tzn pobiera z pliku, ale tylko ostatnią. Błąd:
Kod:
|
|
|
23.08.2009, 21:04:13
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 675 Pomógł: 286 Dołączył: 15.06.2009 Skąd: Wieliczka Ostrzeżenie: (0%) |
|
|
|
23.08.2009, 21:08:33
Post
#12
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 11.08.2009 Ostrzeżenie: (0%) |
zamień na Thx działa wszystko Teraz powiedźcie jak mam użyć SELECT position, name, gangname, points FROM gracze ORDER BY points DESC ;x Ten post edytował Trecco 23.08.2009, 21:16:25 |
|
|
Wersja Lo-Fi | Aktualny czas: 27.04.2024 - 07:43 |