Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]sklep internetowy
Forum PHP.pl > Forum > Przedszkole
Savage.Mephisto
Ostatnio klient sobie zażyczył sklep internetowy z ubrankami dla dzieci, w którym cena pojedynczego produktu uzależniona jest od rozmiaru ubranka. Czyli ktoś sobie wrzuca do koszyka jakiegoś rampersa i wybiera za pomocą select przykładowo rozmiar 92, kolor niebieski i automatycznie cena za taką przyjemność wynosi 10 zeta. Następnie wybiera ten sam produkt, z tą różnicą, że rozmiar jest 90, kolor biały, a cena 9 zeta.
Panowie, kieruję zatem do Was takie pytanko: jak to ugryźć od strony kodu?
Po dłuższym zastanowieniu doszedłem do wniosku, że w bazie danych tabela o nazwie, np. towar miałaby m.in. pola: kolor, rozmiar, cena (wszystkie typu varchar) a w nich lista atrybutów. Później w PHP wystarczyłoby użyć explode i jakoś sensownie połączyć je ze sobą. Tak bym to widział.
A może istnieje jakiś prostszy sposób? Proszę o jakieś wskazówki.
wookieb
Można i tak.
Czasem dla łatwje modyfikacji można stosowac format INI np

kolumna "price"
Kod
m=19.00
l=21.00
xl=23.00
smietek
Jeśli cena rośnie w prost proporcjonalnie do rozmiaru (np. rozmiar 10 - 2zł, rozmiar 20 - 4zł), to w bazie zapisujesz w rozmiar najmniejszy możliwy rozmiar a w cena cenę tego rozmiaru.

Jeśli nie to możesz zrobić sobie tablicę, którą wrzucisz do bazy danych za pomocą serialize(), a potem jak chcesz użyć danych używasz unserialize()
ddiceman
A. Druga postac normalna baz danych i dwie tabele:
rzeczy (int ID, varchar NAZWA...)
rozmiary (int ID, int ID_RZECZY, int ROZMIAR, decimal CENA)

Zalety:
latwo znajdziesz np. ubrania danego rozmiaru
nabierzesz dobrych nawykow

Wady:
mniej wygodne przy tworzeniu zapytan

B. Serializacja tabeli asocjacyjnej, gdzie indeksy sa rozmiarem a wartosc cena, np.:
  1. <?php
  2. $ceny = array(
  3.  's' => 10.0,
  4.  'm' => 12.0,
  5.  'l' => 14.0,
  6.  'xl' => 16.0
  7. );
  8.  
  9. $ceny_do_bazy_danych = serialize($ceny);
  10. ?>


Zalety:
wzglednie wygodne do wyswietlenia widoku produktu, prosta konstrukcja bazy danych

Wady:
WSZYSTKO inne
Savage.Mephisto
Dzięki za szybki odzew. Rozważę powyższe propozycje. Ma ktoś jeszcze jakiś inny pomysł?
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-2025 Invision Power Services, Inc.