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',
);
`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
| |--> (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
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.

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]