Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL]jak rozplanować tabele
robos85
post
Post #1





Grupa: Zarejestrowani
Postów: 466
Pomógł: 11
Dołączył: 21.09.2006
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Musze zrobić takie coś:

W bazie są kategorie i do nich są dodane podkategorie (1 kategoria może zawierać oczywiście więcej niż 1 podkategorię). Teraz tworzony jest jakiś obiekt - powiedzmy hotel.
Hotel można dodać do kilku kategorii i w każdej dodawanej kategorii zaznaczyć odpowiednie podkategorie(więcej niż 1 możliwe).

I mam teraz problem jak zrobić tabele żeby później było możliwe wyszukiwanie np kryterium będzie jakaś podkategoria.
moje wyobrażenie tabel jest takie:

kategoria(id,nazwa)
podkategoria(id,id_kategorii,nazwa)

i w tym momencie stanąłem bo nie wiem jak dalej rozplanować :/

Dzięki za pomoc
Go to the top of the page
+Quote Post
lukasz_os
post
Post #2





Grupa: Zarejestrowani
Postów: 203
Pomógł: 55
Dołączył: 23.11.2008
Skąd: UKF

Ostrzeżenie: (0%)
-----


Mozesz stworzyc tabele z przydzialem hoteli do podkategorii(w tej tabeli masz id_kategorii wiec kategorie sa juz zbedne) i tam po prostu id, id_hotelu,id_podkategorii.

Pozdrawiam.


--------------------
Pomagam jeśli mam czas oraz jak się na tym znam :D
Go to the top of the page
+Quote Post
robos85
post
Post #3





Grupa: Zarejestrowani
Postów: 466
Pomógł: 11
Dołączył: 21.09.2006
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


czyli 3cia tabela to będzie np przydziały(id,id_hotelu,id_podkategorii)

i np jak dodam hotel do 6 podkategorii to będę miał 6 nowych rzędów tak? I później łączyć wszystko w JOINach

Ten post edytował robos85 3.12.2008, 13:37:13
Go to the top of the page
+Quote Post
lukasz_os
post
Post #4





Grupa: Zarejestrowani
Postów: 203
Pomógł: 55
Dołączył: 23.11.2008
Skąd: UKF

Ostrzeżenie: (0%)
-----


Jezeli chcesz dodac hotel do 6 podkategorii to po prostu dajesz zapytanie
  1. INSERT INTO przydzialy VALUES('','id_hotelu','6');

A wybieranie hoteli z kategorii mozesz zrobic tak:
  1. SELECT id_hotelu FROM przydzialy WHERE id_podkategorii='x';

jezeli chcialbys wedlug samych kategorii to np. tak:
  1. SELECT id_hotelu FROM przydzialy WHERE id_podkategorii IN (SELECT id_podkategorii FROM podkategorie WHERE id_kategorii='x';


Za x podstawiasz numery kategorii/podkategorii.

Pozdrawiam.

Ten post edytował lukasz_os 3.12.2008, 13:47:09


--------------------
Pomagam jeśli mam czas oraz jak się na tym znam :D
Go to the top of the page
+Quote Post
robos85
post
Post #5





Grupa: Zarejestrowani
Postów: 466
Pomógł: 11
Dołączył: 21.09.2006
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


do 6 podkategorii chodziło mi do "sześciu"

Czyli w formularzu zaznaczam 6 różnych checkboxów i teraz po wysłaniu forma nastepuje zapis do bazy. I w tym momencie musze zrobić 6 insertów (każda podkategoria zaznaczona to 1 insert)?
Go to the top of the page
+Quote Post
lukasz_os
post
Post #6





Grupa: Zarejestrowani
Postów: 203
Pomógł: 55
Dołączył: 23.11.2008
Skąd: UKF

Ostrzeżenie: (0%)
-----


Dokladnie tak. Insert mozesz zrobic w petli tyle razy ile razy zaznaczyles checkbox.

Pozdrawiam.


--------------------
Pomagam jeśli mam czas oraz jak się na tym znam :D
Go to the top of the page
+Quote Post
robos85
post
Post #7





Grupa: Zarejestrowani
Postów: 466
Pomógł: 11
Dołączył: 21.09.2006
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


to tylko 1 rzecz jeszcze bo nie wiem czy dobrze zrozumiałem: kategorie i podkategorie to 2 różne tabele tak? Tak jak napisałem w 1szym poście?
Go to the top of the page
+Quote Post
lukasz_os
post
Post #8





Grupa: Zarejestrowani
Postów: 203
Pomógł: 55
Dołączył: 23.11.2008
Skąd: UKF

Ostrzeżenie: (0%)
-----


Tak. Pisalem posty pod juz podane Twoje dwie tabele i tylko dodalem trzecia swoja.

pozdrawiam.


--------------------
Pomagam jeśli mam czas oraz jak się na tym znam :D
Go to the top of the page
+Quote Post
robos85
post
Post #9





Grupa: Zarejestrowani
Postów: 466
Pomógł: 11
Dołączył: 21.09.2006
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


OK dzięki:)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 18:25