Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> produkt w wielu kategoriach.
hermik
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 16.02.2004

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
FiDO
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


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.


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
hermik
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 16.02.2004

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


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. ?>


Ten post edytował hermik 22.06.2005, 09:37:06
Go to the top of the page
+Quote Post
SongoQ
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


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


--------------------
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: 22.08.2025 - 04:04