![]() |
![]() |
![]()
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: 122 Pomógł: 14 Dołączył: 14.07.2011 Skąd: Gliwice / Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Raczej tak, złączenie będzie dobrym pomysłem. Jednak Twoje zapytanie działa nie do końca - zwraca wszystkie rekordy z tabeli `mecze` (także te, w których zalogowany gracz wcale nie grał), drugi problem jest taki, że nie jest wyświetlany przeciwnik. Dokładniej wygląda to tak:
Kod gracz1 | wynik_gracz1 | wynik_gracz2 | gracz2 3 0 3 2 Ewa Szańska 3 0 2 1 Ewa Szańska W tabeli `mecze` mam łącznie 4 rekordy. Zakładamy, że Ewa Szańska jest zalogowana. W pierwszych meczach nie grała, a zostały wyświetlone (bez nazwisk). No i tam, gdzie grała, nazwisk rywali tównież nie ma... EDIT: w pierwszym poście zrobiłem lieterówkę - podałem, że w tabeli `mecze` są pola `zawodnik1` i `zawodnik2` - tak nie jest, te pola nazywają się `gracz1` i `gracz2`. Ten post edytował jg44 27.12.2011, 13:10:49 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 15:54 |