Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Problem z zapytaniem do bazy
Forum PHP.pl > Forum > Przedszkole
djcezar
Witam serdecznie.
Piszę ten post na tym forum pierwszy raz dlatego proszę o wyrozumiałość.
Mam pewien problem z zapytaniem do bazy MySQL/php. Nie mam pojęcia jak konkretnie je wywołać aby
poprawnie to zadziałało, już nie mam siły bo od dwóch dni próbuje coś wykombinować.
Może ktoś mi pomoże w tym.
Poniżej podaje tabele jakie posiadam:


Kod
CREATE TABLE `select` (
  `id` int(11),
  `select_id` int(11),
  `table_id` int(11),
  `rodzaj` tinyint(2), - 1-grupa główna, 2-podgrupa, 3-towar
);

CREATE TABLE `grupa_glowna` (
  `id` int(8),    
  `nazwa` varchar(50),
  `wlaczony` tinyint(1) NOT NULL default '1',
);

CREATE TABLE `podgrupa` (
  `id` int(8),
  `nazwa` varchar(50),
  `wlaczony` tinyint(1) NOT NULL default '1',
);

CREATE TABLE `towar` (
  `id` int(11),
  `nazwa` varchar(50),
  `wlaczony` tinyint(1) NOT NULL default '1',
);


Relacje jakie zachodzą między tabelami:
Tabela select służy do połączenia wszystkich zależności między trzema pozostałymi tabelami.
każde połączenie to select.id

połączenia: w grupie głównej może znajdować się towar lub podgrupa, natomiast w podgrupie tylko towar:
Może podam to w przykładzie:


Kod
(select.id=1)grupa_glowna1  -->(select.id=5)podgrupa1 --> |--> (select.id=6)towar1
                            |                             |--> (select.id=7)towar2    
                            |->(select.id=2)podgrupa2     |--> (select.id=8)towar3
                            |
                            |->(select.id=3)towar4
                            |->(select.id=4)towar5



(select.id=9)grupa_glowna2 --> (select.id=11)podgrupa3
                           |
                           |->(select.id=10)podgrupa4 --> (select.id=12)towar6




podaje przykladowe wartosci w tabeli select do tego przykladu:

pole table_id łączy mi po ID z towarem, grupą i podgrupą i wartosci są podane przypadkowe


Kod
id  |  select_id   | table_id   | rodzaj
1   |     1        |    22      |    1 - grupa_glowna
2   |     1        |    33      |    2 - podgrupa
3   |     1        |    32      |    3 - towar
4   |     1        |    36      |    3 - towar
5   |     1        |    66      |    2 - itd.
6   |     5        |    23      |    3
7   |     5        |    76      |    3
8   |     5        |    34      |    3
9   |     9        |    89      |    1 - grupa_główna
10  |     9        |    31      |    2
11  |     9        |    76      |    2
12  |    10        |    56      |    3




select.select_id mowi nam do ktorego wiersza z select.id jest relacja czyli select.id=select.select_id

Duzy problem mam przy zapytaniu, ktore zwracaloby wiersze:

a)
np. mam select.id=3

zapytanie ma zwracac ID i nazwe grupy_glownej z tabeli grupa_główna oraz ID i nazwe towaru z tabeli towar.

cool.gif
podobnie jak w pierwszym tylko przy select.id=7
zapytanie ma zwracac ID i nazwe grupy_glownej z tabeli grupa_główna oraz ID i nazwe z podgrupy z tabeli podgrupy
oraz ID i nazwe towaru z tabeli towar.
czyli select.id=7 (czyli select_id=5, table_id=76 - towar)
dalej z select.select_id=select.id (czyli id=5 , select_id=1 i table_id=66 - podgrupa)
dalej select.select_id=select.id (id=1, select_id=1, table_id=22)

c)
wyszukiwanie towaru po nazwie towaru:
aby zwracalo ID i nazwe grupy oraz ID i nazwe podgrupy jesli jest w niej towar


Myśle że nie zagmatwałem i bardzo proszę o pomoc.
Z góry bardzo dziękuje[code]
maryaan
nie rozumiem co Ty chcesz zrobic? jesli towar nalezy do podgrupy a ta z kolei do grupy to czemu recznie wszystko wpisujesz? przeciez wystarczy podac id towaru i to wystarczy do zidentyfikowania podgrupy/grupy do ktorej on nalezy?
djcezar
Witam
Recznie nie wpisuje tylko podalem to przez przyklad podając wartości. Wlasnie chodzi mi o zapytanie, ktore by zwracało to.
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.