![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 2.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam stronę piłkarską. Każda z drużyn ma swoją osobną podstronę na której są dane kontaktowe, strona www, etc ... Chciałbym, aby na profilu tej drużyny były wyświetlane informacje takie jak newsy powiązane z tą drużyną. Tylko, że jeśli napiszę w jakimś newsie o więcej niż jednej z drużyn to chciałbym aby przy każdej z tych drużyn był ten news. Domyślam się, że trzeba to rozwiązać za pomocą jakiegoś jednego słowa kluczowego. Stworzyłem przy newsie kolumnę "profil_id" i w nim wpisuję nr id danego zespołu z tabeli "profile". Tylko, że jeśli wpiszę w niej nr id zespołu np "18" to drużyna "188" też będzie miała tego newsa. (co jest zrozumiałe, używam where like '%18%') i tu pytanie: rozwiązanie wyżej jest dobre tylko jak to rozwiązanie zastosować jeśli wpiszę więcej id zespołów? oddzielić je przecinkiem i explode? jak ten kod sformułować? Bardzo proszę o pomoc, jak najprościej to rozwiązać bez zbędnych komplikacji. Dzięki za wyrozumiałość. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Tworzysz kolejną tabelę z relacją 1..n zespołu i newsa.
Do newsa "zaznaczasz" kluby których dotyczy. Przykładowe wpisy w takiej tabeli Kod id_zespolu | id_newsa
1 | 2 1 | 4 2 | 2 2 | 6 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 2.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
To mam 3 tabele połączyć? Jak skonstruować zapytanie SQL aby na stronie zespołu były newsy z nimi powiazane?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 2.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Interesujące Cię ID wrzuca się do WHERE, a nie do ON, bo to selekcja rekordów, a nie warunek samego powiązania:
Ten post edytował SmokAnalog 1.12.2013, 11:31:14 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 2.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
nie za bardzo to działa,
może "narysuję" o co mi chodzi. tabela "newsy"
tabela_katalog
i teraz jest taka sytuacja.
innymi słowy: jak jednego newsa przypisać do wielu zespłów i wypisać tego newsa przy każdym z zespołów? mam nadzieję, że teraz jest bardziej obrazowo ;-) dzięki za wyrozumiałość. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Zakładam, że jeden news może dotyczyć kilku zespołów jednocześnie, bo tylko wtedy mówimy o relacji wiele do wielu i potrzebujemy tabeli łączącej.
Tabela z newsami nie powinna nic wiedzieć o zespołach, a tabela z zespołami o newsach. Tabela `newsy`: Kod id | tytul | skrot Tabela `zespoly`: Kod id | nazwa Tabela łącząca, ja lubię je nazywać w stylu `newsy_zespoly`: Kod id | id_newsa | id_zespolu Warto zapoznać się z tematem kluczy obcych. Wtedy możesz np. zrobić tak, że przy usunięciu danego zespołu zawsze usunie się automatycznie jego przypisanie do newsa. Przykładowe dane: Tabela `newsy`: Kod 1 | Była spajsetka nie myje włosów! | Ble. 2 | Iron Maiden i Spice Girls łączą się! | Szok i niedowierzanie. Tabela `zespoly`: Kod 1 | Iron Maiden 2 | Spice Girls Tabela `newsy_zespoly` Kod 1 | 1 | 2 2 | 2 | 1 3 | 2 | 2 Przeanalizuj zawartość tabeli `newsy_zespoly`. Pierwszy news jest połączony z zespołem Spice Girls, a drugi z Iron Maiden i Spice Girls jednocześnie. Ten post edytował SmokAnalog 1.12.2013, 12:19:53 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.06.2025 - 17:22 |