![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 0 Dołączył: 21.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam problem. Przed wysłaniem danych do bazy, pobieram i sprawdzam czy wpis istnieje. Problem w tym, że IF się wykonuje i działa poprawnie, natomiast ELSE IF i ELSE już nie.
Ostatnie 2 nie wykonują się, a są prawdziwe. Pewnie robię jakiś głupi błąd. Proszę o rady. Pozdrawiam. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
No bo jak się ma wykonać else skoro już pierwszy warunek jest prawdziwy? Else z angielskiego to mniej więcej w innym wypadku.
Ten post edytował b4rt3kk 3.10.2012, 11:58:05 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 0 Dołączył: 21.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
No tak, ale te warunki są w innej, większej pętli. Przy drugim wykonaniu pętli podany jest inny numer zamówienia, a wtedy pierwszy IF jest nieprawdziwy, więc powinien wykonać się else if.
Ten post edytował szuki 3.10.2012, 12:00:06 |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Widać warunek dla ELSEIF nie jest prawdziwy wiec wykonuje się else....
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
No tak, ale te warunki są w innej, większej pętli. Przy drugim wykonaniu pętli podany jest inny numer zamówienia, a wtedy pierwszy IF jest nieprawdziwy, więc powinien wykonać się else if. Jesteś absolutnie pewien? Co wyświetla jako wynik? Nawet jeśli masz błąd w warunkach ostatnie else powinno się wykonać i wyświetlić napis: inny tekst. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 0 Dołączył: 21.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
Pętla wykonuje się załóżmy 2 razy.
Za pierwszym razem pobrany jest numer zamówienia: 1234. Wtedy sprawdzam bazę Jeżeli występuje, to spełnia warunki z IFa i wyświetla echo. No ale gdy pętla wykona się drugi raz i poda załóżmy nr zamówienia: 1222 i po sprawdzeniu bazy okazuje się, że rekord nie istnieje, to pierwszy IF jest nieprawidłowy, prawda? Powinien wykonać się else if, albo chociaż else. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Ciężko powiedzieć czy warunek jest prawidłowy czy nie, bo mamy tylko zmienne i można się tylko domyślać jakie wartości przechowują, dlatego napisz jakie treści są wyświetlane po uruchomieniu tejże pętli.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 0 Dołączył: 21.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
Zauważyłem, że problem polega na tym, że IF jest cały czas prawdziwy, za każdym wykonaniem pętli.
Coś rzuca się Wam w oczy, czemu tak się dzieje? Jeśli celowo go zmienię, to wtedy wykonuje się else. b4rt3kk, przykładowe dane w bazie: NUMER ZAMÓWIENIA|ILOSC|LOGIN|DATA| 2734|1|Szuki|2012-09-11 2124|3|xxxx |2012-09-21 No i jeżeli "numer zamówienia" jest w bazie, to powinien wykonać się IF. W przeciwnym wypadku reszta. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Ja by zaczął od sprawdzenia jakie dane wyrzuca wszystko po kolej.
Bo skoro pierwszy if jest cały czas prawidłowy to coś tutaj jest nie tak. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 0 Dołączył: 21.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
Ok, już chyba wiem co jest nie tak. Warunek jest cały czas spełniany, bo pętla wykonuje się tylko wtedy gdy wpis znajduje się w bazie. Czyli jeżeli pobieram 20 wpisów, a 4 są w bazie, to tylko tyle razy się wykona. Ma ktoś pomysł, jak przerobić else ifa? By wykonywał się, jeżeli zapytanie nic nie zwróci. Chyba count == 0 będzie najlepszym rozwiązaniem?
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Najlepszym rozwiązaniem jest sprawdzenie liczby wyników ZANIM zaczniesz cokolwiek innego.
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 0 Dołączył: 21.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
Działa, dziękuje.
Ten post edytował szuki 3.10.2012, 21:29:22 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 17:55 |