![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 25.03.2011 Ostrzeżenie: (10%) ![]() ![]() |
Ostatnio natknąłem się w swoim łbie na pewne rozwiązanie, lecz nie mam bladego pojęcia jak je zrealizować.
Dlatego postanowiłem poszukać rady tutaj. Załóżmy, że tworzymy platformę eCommerce. Jest sobie moduł dodawania produktów do oferty produktowej. Lecz teraz ważna kwestia, jest masa różnych branż na świecie i jak zapewnić uniwersalność ? To znaczy że np księgarnia internetowa potrzebuje dodając produkt - takich pól jak ISBN, ilość stron, wydanie itp. Natomiast Sklep IT, potrzebuje już tylko takich pól jak np: Pojemność, rok produkcji, producent. Sklep z odzieżą już z kolei potrzebuje innych pól np: rozmiar, kolor Czy macie jakieś pomysły jak to uniwersalnie rozwiązać? Aby każda branża mogła korzystać z usług projektowanej platformy eCommerce ? Dziękuje za wszelkie porady |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 286 Pomógł: 12 Dołączył: 23.11.2006 Skąd: WL Ostrzeżenie: (0%) ![]() ![]() |
Na twoim miejscu to
Stworzył bym osobną tabele "pola" i do niej dodał kolumny pole_id, kategoria_id(czyli tutaj np. księgarnia), nazwa_pola Następnie drugą tabele wartości pól value_id, pole_id, value_value I wtedy dołączyłbym główną tabele z tymi tabelami poprzez kategoria_id i pole_id, zgrupował je np. GROUP_CONCAT() ponieważ obie te tabele zwrócą więcej rekordów niż 1 explode i jazda dalej... Albo też bez grupowania... wystarczy użyć tablic Takie zapytanie zwróciło by ci więcej rekordów niż 1 to możesz to w łatwy sposób powsadzać do tablic Sprawdzasz czy tablica o id_kategorii istnieje czyli if(!isset($product[id_kategorii])) jeśli nie istnieje to tworzysz taką i w niej zagnierzdżasz informację o produkcie następnie w tej samej tablicy tworzysz drugą tablice "pola"; i wsadzasz tam informacje o polach... gdy już drugie obkrążenie poleci to ominie tworzenie nowej tablicy ponieważ takowa o tym indexie już istnieje i następnie pakujesz informacje o polach do niej, wytłumacze to obrazowo. !isset{ array[$pro_id] |product name => $name| product_id => $id |itp... | pola => array(i tutaj pola w tej tablicy); }else{ a tutaj juz pomijasz tworzenie tablicy i tylko pakujesz to tak array[$pro_id][pola][] = array(...) } No i w taki sposób otrzymujesz wszystkie pola przypisane do przedmiotów... Później żeby wyświetlić te pola potrzebujesz tylko zagnieździć pętle foreach w drugiej pętli foreach czyli foreach($pro as $pp) { foreach($pp[pola] as $pola){ no i tutaj wyswietlasz pola do niej } } P.S wejdź sobie na bloga nospora http://www.nospor.pl o tam ma gdzieś podobny przykład wytłumaczony od a-z Mam nadzieje że pomogłem (IMG:style_emoticons/default/smile.gif) Ten post edytował szmerak 27.11.2011, 03:11:17 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 15:53 |