![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 29.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam mam następujący problem otóż, pobieram z bazy danych wartość będącą liczbą i teraz mam problem ponieważ potrzebuję to przypisać mam kod
następnie to przypisuje w pliku do którego załączam tą tablice, $ranga[$r[rank]]. I po tym właśnie zwraca mi błąd Warning: Illegal offset type in ... on line 3,4,5,6 Bardzo bym prosił o pomoc gdyż jestem początkującym programistą i nie wiem za bardzo gdzie zrobiłem błąd. Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Ja bym nie ufał przedziałom górnym. Kulczycki ma rację co do pewnego małego babola u Ciebie Crozin. Nie reagujesz na przekroczenie zakresu maksymalnego w ostatnim wypadku dla weterana. Gdy ktoś przekroczy 20000 - nie pokaże nic.
Tu masz wersję zagnieżdżona dla rang. Nie jest ładna, ale zadziała jak trzeba. Jeśli chcesz, by funkcja była dynamicznie modyfikowalna (co jakiś czas zmieniasz nazwy rang lub wartości) to stwórz funkcję, gdzie jako parametr przekazujesz tablicę z zakresami dolnymi jako klucze (IMG:style_emoticons/default/smile.gif) Przykład masz tutaj mniej więcej... Oczywiście "magia" to żart. Posortowaną tablicę przeszukuję od końca tak długo, aż nie dojdę do początku. Gdy jestem w pętli to porównuję wartość liczbową podaną w funkcji do aktualnego progu i jeśli klucz jest większy to lecę do elementu wcześniej w tablicy. Jeśli nie jest to prawda, to znaczy, że wpadłem we właściwy zakres i zwracam wartość dla tego klucza. Jeśli dojdę do końca i nie znajdę pasującego to wywalam rangę domyślną dla oszusta (IMG:style_emoticons/default/smile.gif) Zwracaj uwagę na to co zwraca funkcja ranga. jeśli dała w wyniku false to sygnalizuj błąd. Uważaj na 0... Jeśli zrobisz głupie
to wywali Ci error jeśli będziesz zwracał jako nazwę 0, '0' lub cokolwiek innego dające się do false przekonwertować w locie. Powinno być:
Do latania po pętli mogłem też użyć foreach, co jest wygodne przy małych petlach. Ale tutaj dla celów edukacyjnych użyłem while, byś wiedział, że tak też można, a dodatkowo przy ogromnych pętlach while jest wydajniejsze. Tutaj to tylko sztuka dla sztuki i ukazanie że można. Równie dobrze możesz to foreach zastąpić, bo wątpliwe byś miał kiedykolwiek więcej niż kilka tysięcy rang (IMG:style_emoticons/default/winksmiley.jpg) Dodatkowo jeśli masz pewność, że klucze są już podane w odpowiedniej kolejności od najmniejszej do największej to możesz usunąć z wnętrza ksort, który spowalnia całość.
Powód edycji: [thek]: [thek]: Poprawiłem literówki małe i dodałem komentarze :)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.09.2025 - 11:44 |