![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 154 Pomógł: 0 Dołączył: 17.12.2003 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Na początek podam ze strukturę bazy znajdziecie pod adresem: http://fallnet.sytes.net/siec-bud/export.jpg. Jesli chcecie poznac przykladowe dane to zapraszam pod adres: http://fallnet.sytes.net/siec-bud/index.php gdzie jest proste menu do wyswietlania danych z tabel co poznacie nizej (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Mam problem z sformułowaniem zapytania w sql`u. Sprawa wygląda mniej więcej tak: Mam tabelę z nazwami cech (_cn), tablę z wartościami cech (_cw), tabelę z cechami przypisanymi do produktu (_cp) i tablę produkt (_prod). Strukturę i relacje znajdziecie w linku który podałem powyżej. Dla pewności zamieszczam sql`owe odpowiedniki:
I wszystko było by w porządku, gdyby nie to, że każdy produkt ma WIELE cech. tzn: Kod "SELECT _kat.kn, _cw.cw, _jm.jm_skrot, FROM _kat, _cw, _jm, _cp WHERE _prod.id_prod=_cp.id_prod"; (to zapytanie moze byc nie poprawne) wyswietli mi wszystko za wyjatkiem tego ze podana bedzie jedna cecha (a dokladnie jej wartosc).....czyli np: |kategoria|nazwa|jednostka miary| a (w zaleznosci od ilosci cech) chce otrzymac: |kategoria|nazwa|model|typ|wysokosc|itp......|jednostka miary| to chyba jest cos w stylu tabeli przestawnej? Kompletnie nie wiem jak to rozwiazac... nawet nie jestem pewien czy po prostu w samym php trzeba inaczej pobrac dane? Z góry dziękuje za (p)odpowiedzi pozdrawiam Marcin edit: a jeszcze jedno.. troche poteoretyzuje.. czy przy takiej strukturze tabeli, bede mial mozliwosc rozroznienia produktu i jego cech .. tzn czy nie powinienem dodac jeszcze jedenej tabeli(encji) z _cp.id_cp i _prod.id_prod? Macie jakies sugestie? Ten post edytował Fallout 10.02.2005, 19:47:03 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 255 Pomógł: 0 Dołączył: 22.04.2004 Skąd: Żoliborz Ostrzeżenie: (0%) ![]() ![]() |
Cytat Post powyzej pokazuje ze chyba jednak sie da Co się da!? Przecież chciałeś mieć to w osobnych kolumnach(jednym zapytaniem) a on robi dwa zapytania Cytat Ok.. to zrob mi na tym sortowanie, dodawanie i usuwanie oraz wyszukiwanie rekordow to cie złotem obsypie Jak byś używał postgresa to by nie było problemu: robisz podzapytanie from( i tu dajesz zwykłego select'a łączącego z sortowaniem). A tak chcesz robić zaawansowane żeczy na prymitywnej bazie. Można zrobić coś takiego: group_concat(cechy.nazwa order by cechy.nazwa separator '|') ale to tylko sortuje wewnetrzne cechy produktu Wyszukiwanie ? A co za problem dać odpowiedni where ? W dodawaniu lub edytowaniu pewnie nie obędzie się bez dwóch zapytań, ale wtedy operujesz tylko na jednym produktcie i to zupełnie inny select. Cytat Info o produkcie pobieram w 2 zapytaniach, jedno pobiera info z tabeli produktow, a drugie wszystkie cechy (lacznie z ich nazwami z tabeli slownika cech) A jak chcesz wyświetlić 50 produktów, to co, robisz 51 zapytań? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 09:23 |