![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 7.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Napisałem własną funkcję do wyboru nazw drużyn z bazy danych za pomocą: <select name=""> o nazwie drużyna. Kiedy użyłem ją we wcześniejszym pliku działała bez zarzutu, ale po próbie wykorzystania jej w następnym już nie. Jak ktoś jest wstanie mi powiedzieć dlaczego to by było super (IMG:style_emoticons/default/smile.gif) Ciąg Dalszy Postu (IMG:style_emoticons/default/smile.gif) Kod Funkcji druzyna($a) z pliku o nazwie druzyna.php:
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 483 Pomógł: 50 Dołączył: 15.03.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat Kiedy użyłem ją we wcześniejszym pliku działała bez zarzutu, ale po próbie wykorzystania jej w następnym już nie. Jak ktoś jest wstanie mi powiedzieć dlaczego to by było super smile.gif jakis blad? albo cos? |
|
|
![]() ![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 7.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Ciąg Dalszy Postu (IMG:style_emoticons/default/smile.gif)
Kod z którym ta funkcja nie działa o nazwie pan_podsumowanie.php:
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 15.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 7.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Ciąg Dalszy postu (IMG:style_emoticons/default/smile.gif)
Kod z którym ta funkcja działa o nazwie pan_wyniki.php:
Dodam jeszcze że w pliku pan_podsumowanie działa to po napisaniu kodu funkcji w miejscu jej wywołania :
Bardzo proszę o pomoc. (IMG:style_emoticons/default/smile.gif) P.S.: Ale się rozpisałem (IMG:style_emoticons/default/tongue.gif) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 483 Pomógł: 50 Dołączył: 15.03.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
OMFG. sorry 99% kodu jest niepotrzebna tego co dałeś.
Co do tego, że nie jest elegancko dawać tak notorycznie echo zgodze się... Jakiś błąd wywala Ci? jeśli nie to czy masz włączone error_raporting ? Cytat Dodam jeszcze że w pliku pan_podsumowanie działa to po napisaniu kodu funkcji w miejscu jej wywołania : nic dziwnego w koncu kazaleś mu zrobić bezpośrednio to co masz w funkcji (IMG:style_emoticons/default/smile.gif)
Ten post edytował Hpsi+ 15.06.2011, 15:33:10 |
|
|
![]() ![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 7.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Nie wyskakują żadne błędy, ale wygląda na to jak by funkcja przestała zwracać wybraną drużynę. Zmienna $nazwa jest cały czas pusta.
Sam formularz się pojawia tylko nie zapisuje tego co powinna ta funkcja zwrócić do zmiennej do której jest przypisana. Jakiś błąd wywala Ci? jeśli nie to czy masz włączone error_raporting ? Jak sprawdzić czy to jest włączone ? (IMG:style_emoticons/default/tongue.gif) |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 483 Pomógł: 50 Dołączył: 15.03.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
A przyczepionych tematów się nie czyta?
Temat: Jak poprawnie zadac pytanie nospor bardzo dobrze Tam wytłumaczył (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 7.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Po włączeniu będów wyskoczyło takie coś.
Notice: Undefined variable: dr in c:\.\.\.\.\.\.\druzyna.php on line 45 tylko ze wydaje mi sie ze to blad związany z tym ze zmienna $dr jest pusta. Trudno żeby była wypełniona jak błąd wyskakuje przed dokonaniem wyboru. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 763 Pomógł: 117 Dołączył: 15.03.2010 Skąd: void Ostrzeżenie: (0%) ![]() ![]() |
To nie błąd tylko informacja, która nie ma prawa spowodować jakiegokolwiek błędu.
Dodaj znacznik @ przed definiowaniem zmiennej dr -> @$dr = ... Jest to operator tłumienia błędów. Co do Twojego problemu.. nie wiem. To błąd logiczny, a nie problem ze składnią. Przeanalizuj kod od początku do końca. Ja w tym momencie nie mam na to czasu dlatego nie wyręczę Cię z tego obowiązku. Ten post edytował modern-web 15.06.2011, 16:28:50 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 483 Pomógł: 50 Dołączył: 15.03.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat Dodaj znacznik @ przed definiowaniem zmiennej dr -> @dr = ... zły nawyk wg mnie .... Co do reszty to sie zgodze, czytalem kod i tez nie zauwazlem bledu. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 763 Pomógł: 117 Dołączył: 15.03.2010 Skąd: void Ostrzeżenie: (0%) ![]() ![]() |
Owszem, zły nawyk ale gdy włącza się wyświetlanie wszystkich komunikatów i błędów warto nie zaśmiecać sobie ekranu (w przypadku rozbudowanych skryptów) i tymczasowo dodać @ przed definiowaniem zmiennej, na którą wskazuje informacja (Notice). Błędy (Warning) należy od razu usuwać - oczywiście w miarę możliwości.
Tak czy inaczej @ nie robi wielkiej różnicy gdy E_NOTICE jest wyłączone (IMG:style_emoticons/default/wink.gif) |
|
|
![]() ![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 7.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
No cóż po patrze jeszcze trochę w kod może coś znajdę, ale jak byście coś jednak do juta znaleźli to piszcie. Dzięki z pomoc (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
A połączenie z bazą masz w momencie wywołania funkcji?
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 7.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Połączenie z bazą mam na pewno bo inne aktualizowane dane z tego formularza się dodają tylko jest problem z tą funkcja.
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Ale Panie. Przecież Twoja funkcja zwraca zawartość $_POST['gospodarze'] lub $_POST['goscie'], a w pliku pan_podsumowanie.php nigdzie z tablicy $_POST takich danych nie odbierasz, bo zapewne ich nie ma, w przeciwieństwie do pliku pan_wyniki.php.
Wniosek: funkcja zwraca nie to, co trzeba! |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 54 Pomógł: 12 Dołączył: 4.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ja patrzę w ten plik w którym funkcja nie działa i nie widzę żadnego jej wywołania.... Możesz podać numer linii w której ją wywołujesz?
Jest tylko jakaś druzyny(1) w linii 74.... więc to nie to (IMG:style_emoticons/default/wink.gif) Ty przecież zdefiniowałeś druzyna() Ten post edytował aachi 16.06.2011, 09:36:58 |
|
|
![]() ![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 7.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Ale Panie. Przecież Twoja funkcja zwraca zawartość $_POST['gospodarze'] lub $_POST['goscie'], a w pliku pan_podsumowanie.php nigdzie z tablicy $_POST takich danych nie odbierasz, bo zapewne ich nie ma, w przeciwieństwie do pliku pan_wyniki.php. Wniosek: funkcja zwraca nie to, co trzeba! To chyba nie to bo próbowałem dodać do funkcji ten sam kod tylko z $_POST['nazwa']; i przypisać go parametrowi 3 ,tak jak to jest zrobione w pan_wyniki.php. (parametr 1 - gospodarze, 2 - goscie, 3 - nazwa) Niestety w ten sposób tez nie chciało działać :/ Ja patrzę w ten plik w którym funkcja nie działa i nie widzę żadnego jej wywołania.... Możesz podać numer linii w której ją wywołujesz? Jest tylko jakaś druzyny(1) w linii 74.... więc to nie to (IMG:style_emoticons/default/wink.gif) Ty przecież zdefiniowałeś druzyna() Wywołanie funkcji jest w linii 73:
Jeśli chodzi o definicje funkcji to: |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
W funkcji druzyna() masz przypisania:
Jeśli w tablicy $_POST nie przekażesz choćby pustej wartości zmiennej $_POST['gospodarze'] lub/i $_POST['goscie'], to do przypisania nigdy nie dojdzie. Dodatkowo zmienna $dr nie jest nigdzie zainicjowana domyślną wartością. Tak na dobrą sprawę funkcja zwraca to, o czym pisałem w poprzednim poście. Jest to błąd logiczny, ponieważ w tablicy $_POST nie zawsze będą znajdować się odpowiednie dane. Poza tym sama funkcja ze zmiennych $_POST['gospodarze'] i $_POST['goscie'] nie korzysta, a jedynie je zwraca - bez sensu, bo tutaj funkcji nie potrzeba. Przeanalizuj cały skrypt jeszcze raz, bo ewidentnie coś jest nie tak z logiką biznesową aplikacji. Poza tym niby tworzysz funkcję, ale nadal nie przestrzgasz reguły DRY. Przecież ta funkcja może wyglądać lepiej:
Co do uwagi aachi: Twoja funkcja nazywa się druzyna() a wywołujesz funkcję druzyny(). |
|
|
![]() ![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 7.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Zmieniłem trochę funkcję druzyna($a) i zaczęło działać.
Błędem było złe przekazywanie tablicy $_POST tak jak to opisał mortus: W funkcji druzyna() masz przypisania:
Jeśli w tablicy $_POST nie przekażesz choćby pustej wartości zmiennej $_POST['gospodarze'] lub/i $_POST['goscie'], to do przypisania nigdy nie dojdzie. Dodatkowo zmienna $dr nie jest nigdzie zainicjowana domyślną wartością. Tak na dobrą sprawę funkcja zwraca to, o czym pisałem w poprzednim poście. Jest to błąd logiczny, ponieważ w tablicy $_POST nie zawsze będą znajdować się odpowiednie dane. Poza tym sama funkcja ze zmiennych $_POST['gospodarze'] i $_POST['goscie'] nie korzysta, a jedynie je zwraca - bez sensu, bo tutaj funkcji nie potrzeba. Teraz funkcja jako parametr przyjmuję odpowiednie odwołanie do tablicy $_POST. A oto kod:
I przykładowe wywołanie (z pliku pan_wynik.php):
Napiszcie co myślicie o tym rozwiązaniu. Jeśli chodzi o pozbycie się tego fragmentu kodu o którym pisze mortus:
To bez tego funkcja nie działa. Pozdrawiam (IMG:style_emoticons/default/smile.gif) P.S: mortus, a oco chodzi w tej regule DRY (IMG:style_emoticons/default/questionmark.gif) Ten post edytował rulfy 20.06.2011, 19:39:24 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.09.2025 - 10:13 |