Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: produkt w wielu kategoriach.
Forum PHP.pl > Forum > Bazy danych > MySQL
hermik
Witam,
Mam do rozwiazania taki problem...
Zapisujac dany produkt do bazy... moge ustalic kategorie do jakiej nalezy. Kategorie pobieram z osobnej tabeli w ktorej przechowuje id i nazwe kategorii.
Jednak produkt moze byc w wielu kategoriach na raz.... , jak rowniez moze posiadac wiele kolorw i rozmiarow.
Jak to najlepiej rozwiazac....

Do tej pory spotkalem sie raz z podobnym problem (gdzie firma mogla byc w wielu kategoriach tematycznych)... i rozwiazalem to lopatologicznie, mianowicie w tabeli z firmami mialem kolumne w ktorej przechowywalem ID (odzielone przecinkami) do ktorych nalezala dana firma... Potem rozbijalem explodem ten ciag....

To chyba nie jest najlepsze rozwiazanie... poniwaz w przypadku produktu i kategori, jesli chcialbym wyswietlic wszystkie nazwy do jakich nalezy dany produkt, musial bym w petli wyknac tyle zapytac do ilu kategorii nalezy produkt (rozbijajac te id z tabeli produktu po przez explode).


Mysllalem o tym czy nie trzymac id produktu w tabeli z kategoriami do ktorych nalezy dany produkt.... -czy moze bede potrzebowac tabele laczaca?questionmark.gif


Prosilbym o pomoc w rozwiazaniu problemu w tej sprawie i jakas dobra podpowiedz...


z gory dziekuje
FiDO
Bedziesz potrzebowal tabeli laczacej, ktora zawiera tylko ID kategorii oraz ID produktu, wiele wpisow o tym samym ID produktu bedzie swiadczylo o tym, ze ten produkt nalezy do wielu kategorii.
Wyciaganie danych z takiej tabeli nie sprawia problemu w przeciwienstwie do wersji z ID po przecinkach.
hermik
Dzieki za podpowiedz.. a wiec zrobilem tak...

produkty
ID | dane1 | dane2...

kategorie
ID | nazwa | opis

kategorieprodukty
IDkategori | IDproduktu

Ale nadal nie wiem jak bedzie wygladalo zapytanie z tych trzech tabel, aby wyswietlic
wszystkie kategorie do ktorych nalezy produkt o danym ID wraz z opisem kategorii....

Jesli moglbys mi wyjasniec? (zapewne trzeba uzyc polecenia JOIN)... ale jestem kiepski z takimi zapytaniami

Prosze o rade.. i z gory dziekuje

-----------------------------------------------
Juz sobie chyba poradzilem... sposob dziala, ale prosilbym o sprawdzenie jakiegos eksperta, czy dobrze to robie....

  1. <?php
  2. $wynik =  mysql_query(&#092;"SELECT kolory.id, kolory.nazwa as nazwakoloru, kolory.obrazek as obrazekkol
    o
  3. u, koloryprodukty.idproduktu, koloryprodukty.idkoloru from kolory, koloryprodukt
  4.  WHERE
  5. koloryprodukty.idproduktu='$idp' AND kolory.id = koloryprodukty.idkoloru&#092;");//wydanie polecania sql  
  6. while($wiersz=mysql_fetch_array($wynik)) {
  7.  
  8. echo($wiersz['nazwakoloru'].&#092;"<br>\");
  9. }
  10.  
  11. ?>
SongoQ
Zapytanie jest poprawne.

Jesli chesz wyciagnac tez kolory do ktorych nie ma przypisanych zadnych produktow, to robisz LEFT JOIN i warunek zlaczenia dajesz w ON
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-2024 Invision Power Services, Inc.