Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytanie mysql - Problem!
Forum PHP.pl > Forum > Bazy danych > MySQL
djbarca
ok. zrobilem jak radziles . zrobilem tabele ktora polaczylem kategorie i druzyny ... ale mam teraz problem z odpowiednim skonstruowaniem zapytania.
napisalem cos takiego
  1. SELECT p._id_kat,p._id_druzyny, d.id, d.nazwa, d.punkty, k.id,k.nazwa
  2. FROM
  3. druzyny d LEFT JOIN
  4. druzyny_polacz p ON p._id_druzyny = d.id LEFT JOIN
  5. druzyny_kategorie k on p._id_kat = k.id
  6. ");
  7.  
  8. while ($rek=mysql_fetch_array($sql))
  9. {
  10. ...
  11. }

problem tkwi w tym . ze jak dodaje w tabeli laczacej nowy rekord z id druzyny i id kategori to wyswietla mi rowniez nowa druzyne.
a chcialbym zeby po dodaniu np Realu do kategori wszystkie i klubowe w komorce (tabeli na str.) wyswietlalo mi do jakich kategori nalezy Real a nie wyswietlalo nowy wpis we wszystkich. Nie wiem czy w miare dobrze wyjasnilem.

Ogolnie wyswietlenie wszystkich graczy wg podanego id kategori nie ma problemu.

  1. $sql=mysql_query("
  2. SELECT p._id_kat,p._id_druzyny, k.id,k.nazwa, d.id, d.nazwa FROM druzyny_polacz p left join
  3. druzyny_kategorie k ON p._id_kat = k.id left join
  4. druzyny d ON p._id_druzyny = d.id WHERE p._id_kat='2'
  5. ");

Glownym problemem jest wlasnie te wyswietlenie druzyn z tabeli druzyny oraz info o przynaleznosci do kategori z tabeli laczacej!
Rezulat widoczny na foto


dodam jeszcze strukture tabeli
  1. CREATE TABLE `druzyny_polacz` (
  2. `_id_kat` int(11) NOT NULL,
  3. `_id_druzyny` int(11) NOT NULL
  4. ) ENGINE=MyISAM DEFAULT CHARSET=latin2;
zzeus
Proponuje zrobić trzecią tabelę która będzie łączyć drużyny z kategoriami, tak będzie prościej i wydajniej
djbarca
ok. zrobilem jak radziles . zrobilem tabele ktora polaczylem kategorie i druzyny ... ale mam teraz problem z odpowiednim skonstruowaniem zapytania.
napisalem cos takiego
  1. SELECT p._id_kat,p._id_druzyny, d.id, d.nazwa, d.punkty, k.id,k.nazwa
  2. FROM
  3. druzyny d LEFT JOIN
  4. druzyny_polacz p ON p._id_druzyny = d.id LEFT JOIN
  5. druzyny_kategorie k on p._id_kat = k.id
  6. ");
  7.  
  8. while ($rek=mysql_fetch_array($sql))
  9. {
  10. ...
  11. }

problem tkwi w tym . ze jak dodaje w tabeli laczacej nowy rekord z id druzyny i id kategori to wyswietla mi rowniez nowa druzyne.
a chcialbym zeby po dodaniu np Realu do kategori wszystkie i klubowe w komorce (tabeli na str.) wyswietlalo mi do jakich kategori nalezy Real a nie wyswietlalo nowy wpis we wszystkich. Nie wiem czy w miare dobrze wyjasnilem. Rezulat widoczny na foto


dodam jeszcze strukture tabeli
  1. CREATE TABLE `druzyny_polacz` (
  2. `_id_kat` int(11) NOT NULL,
  3. `_id_druzyny` int(11) NOT NULL
  4. ) ENGINE=MyISAM DEFAULT CHARSET=latin2;

zzeus
Dla jednego rekordu z tabeli drużyny pobierasz kilka rekordów z tabeli druzyn_kategorie, więc musisz skorzystać z GROUP_CONCAT()
djbarca
Dziala ladnie smile.gif dzieki za pomoc + rzecz jasna smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.