![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 122 Pomógł: 14 Dołączył: 14.07.2011 Skąd: Gliwice / Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam dwie następujące tabele: `uzytkownicy`(`ID`,`nazwa_uzytkownika`) oraz `mecze`(`gracz1`,`gracz2`). Powiązane są kluczami obcymi:
W tabeli `mecze` w kolumnach `gracz1` oraz `gracz2` przechowywane są ID zawodników. Problem polega na tym, że chcę wybrać wszystkie mecze zalogowanego użytkownika (czyli takie rekordy, gdzie zalogowany użytkownik jest zapisany w polu `gracz1` lub `gracz2`). Znane jest zarówno ID tego zalogowanego użytkownika (pod zmienną $this->id) jak i nazwa (zmienna $this->user_name). Próbowałem w taki sposób, jednak to bardzo źle działa, bo co prawda wyświetla mecze zalogowanego użytkownika, ale wszędzie wrzuca jego nazwę:
Przykładowo, załóżmy, że zalogownym użytkownikiem jest Ewa Szańska. Powyższy fragment powinien zwrócić tabelę wynikową: Kod zawodnik1 | wynik_zawodnik1 | wynik_zawodnik2 | zawodnik2 Ewa Szańska 3 0 Jurek KIler Stefan Siarzewski 3 2 Ewa Szańska a zamiast tego zwraca: Kod zawodnik1 | wynik_zawodnik1 | wynik_zawodnik2 | zawodnik2 Ewa Szańska 3 0 Ewa Szańska Ewa Szańska 3 2 Ewa Szańska Błąd prawdopodobnie leży w linii 19 metody drukującej dane (jak widać dwa razy drukuję $l['nazwa_uzytkownika'] i dlatego nadpisuje mi pozostałe nazwiska). Jak sobie z tym poradzić? ____________________________________________ Albo inaczej: jeśli zmodyfikuję pętlę wybierającą na następującą:
to działa dobrze, ale zamiast nazwy użytkownika drukuje jego ID. Jak zrobić, aby zamiast ID drukowana była nazwa użytkownika? Z góry dziękuję za pomoc. Ten post edytował jg44 27.12.2011, 11:34:23 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 282 Pomógł: 89 Dołączył: 12.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Problem leży w zapytaniu, właściwe byłoby
Postaraj się też dokładnie podawać strukturę tabel, zgaduję jedynie że w tabeli mecze są jeszcze kolumny wynik1 i wynik2 i być może jakieś inne, które na pozór mogą być nieistotne dla tego problemu, ale przykładowo jeśli nie zapisujesz daty meczu i nie chcesz po niej sortować to mógłbyś uniknąć używania OR i mieć dwa prostsze i sumarycznie dużo szybsze zapytania z podanym użytkownikiem najpierw na pierwszym a potem drugim miejscu. Nie czepiam się, po prostu precyzyjne dane oszczędzają sporo czasu i myślenia komuś, kto chce odpowiedzieć. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 03:36 |