![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 8 Dołączył: 28.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Pisze grę przeglądarkową, przyszedł czas na ranking graczy. I mam problem. Może najpierw kod:
Wszystko działa kiedy gracz ma gildie, a kiedy nie ma to po prostu nie wyświetla linijki o graczu.
czyli w polu guild w tabeli players wpisane jest id gildii, a w tabeli guilds istnieje gildia o takim id, więc wszystko działa. Kiedy ktoś nie ma gildii w polu guild wpisane jest 0, a w tabeli guilds nie ma gildii o id 0. Jak to ominąć? Zaglądałem do manuala Mysqla, kombinowałem, ale nic mi z tego nie przyszło. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 14 Dołączył: 8.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Wywal joina, zrób 2 oddzielne zapytania. najpierw pytasz sie o playera, a następnie, w drugim zapytaniu robisz zapytanie o jego gildie w stylu:
, $guildID bierzesz z poprzedniego zapytania z tabeli players. Jeżeli będzie zero to nic nie zwroci - ewentualnie mozesz dodac warunek ze zapytanie sie wykona tylko jak $guildID != 0. Wiesz, nie chce cie wprowadzic w błąd, olałem 90% wykladow z Inzynierii Oprogramowania i 50% laborek, jednakże wydaje mi sie że Join służy do łączenia tabel ktore są połączone relacją 1:1 (czyli jeden wiersz w tabeli jednej odpowiada dokladnie jednemu w tabeli drugiej). U ciebie czesc graczy nie nalezy do zadnej gildii wiec relacja 1:1 nie zachodzi (scislej jest to relacja 1:n - wiele graczy moze na raz nalezec do jednej gildii, ale kazdy gracz moze miec tylko jedna gildie). Jesli chcesz pisac duze aplikacje, moze zainteresuj sie programowaniem obiektowym i odwzorowaniem bazy danych na obiekty (ORM), np Doctrine2? bedzie ci duzo latwiej ogarnąć złożoność. Nie widze u ciebie zadnych modeli, widokow, zapewne będziesz w wielu miejscach robił copy&paste przez to, a nastepnie bedziesz poprawial wiele razy te same błędy w roznych miejscach. Ten post edytował Orzeszekk 3.03.2012, 01:01:58 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 8 Dołączył: 28.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
dzięki za odpowiedz, pomógł poleciał (IMG:style_emoticons/default/wink.gif)
co do programowania obiektowego - na razie zostane przy struktularnym - jest dla mnie wygodniejsze i czytelniejsze. może kiedyś przeskocze na obiektowe ;d |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 11:35 |