10/10/2018, 10:43

Cách làm thay đổi phân cấp sản phẩm theo giá 1 cách linh hoạt ?

Mình làm web bán Laptop, ý tưởng của mình thế này :

Tại trang chủ sẽ phân chia Laptop thành 3 loại : Sản phẩm cao cấp ( giá >=30tr), sản phẩm trung cấp (30tr > giá >=15tr) và sản phẩm thông dụng ( giá <15 tr).

Ứng với từng loại sẽ dùng câu lệnh sql để lấy sản phẩm từ CSDL : select * from Laptop where GiaSP>30000000 ( đối với sản phẩm cao cấp & tương tự như vậy với sản phẩm trung cấp, thông dụng).

Như vậy thì ko khó khăn gì rồi, nhưng thầy giáo mình có đặt ra cho mình 1 vấn đề : nếu Administrator muốn thay đổi mức giá của các loại sản phẩm thì có làm được ko ? ( tất nhiên là ko nói đến chuyện chỉnh sửa code rồi) .

Ví dụ : Sản phẩm cao cấp sẽ có giá >40tr ... , nói chung là có thể thay đổi linh hoạt được.

Ở trang Administrator, mình đã thêm list lựa chọn giá để hiển thị trên trang chủ ( trang Administrator & Trang chủ web hoàn toàn độc lập với nhau), Admin có thể chọn giá sản phẩm cao cấp > Giá lựa chọn từ list( đặt tên là Max), giá sản phẩm thông dụng < giá lựa chọn từ list ( đặt tên là Min và giá sản phẩm trung cấp sẽ ở giữa.

Như vậy cậu lệnh Sql sẽ chuyển thành : select * from Laptop where GiaSP>Max ( đối với sản phẩm Cao cấp)

Nhưng vấn đề gặp phải : làm sao để trang chủ có thể nhận được sự thay đổi đó??

Mọi người giúp mình với.
thuyduongcd viết 12:44 ngày 10/10/2018
Save vào file cofig, trước khi query sản phẩm thì load lấy giá trị max & min lên. Hoặc tạo 1 bảng option để lưu các thiết lập của admin, thêm 2 record min và max.
hien1303 viết 12:48 ngày 10/10/2018
Được gửi bởi thuyduongcd
Save vào file cofig, trước khi query sản phẩm thì load lấy giá trị max & min lên. Hoặc tạo 1 bảng option để lưu các thiết lập của admin, thêm 2 record min và max.
Bạn có thể chỉ cho mình cách save & load giá trị vào file được ko ?

Còn tạo table thì mình nghĩ việc thay đổi này ko cần thiết phải tạo 1 bảng để lưu trong CSDL, nhưng đây cũng là 1 cách . Cảm ơn bạn nhiều.
honnhienh viết 12:54 ngày 10/10/2018
không rành vụ này lắm. Cần bác thuyduongcd giúp mình luôn: cắch làm của mình là bác có cái file config trong đo có một khai bao một số giá trị $config['max_pri'] =...
$config['med_pri']=....
$config['low_pri']=.....

save cái này lai rùi require vô cai file của mình chắc phải viết thêm cái form nữa để cho người ta input cái giá trị này vào rùi ghi vào cái file đó.

cần thuyduongcd giúp luộn trước giờ tòan database từ hồi học mấy cái open souce cũng ngộ ra được mấy thứ.
thuyduongcd viết 12:46 ngày 10/10/2018
Nếu trang admin ngoài option max min này còn nhiều option khác nữa thì đằng nào cũng phải có table option. Như vậy thêm 2 record này vào là hợp lý. Đây cũng là trường hợp phổ biến, vì không ai tạo trag admin chỉ để thay đổi 2 mức giá này thôi. Giả sử trang admin chỉ có 2 option này thôi tôi cũng khuyên bạn nên chọn cách này vì tương lai biết đâu sẽ còn phát sinh nhiêu option khác Như thế việc điều chỉnh cũng dễ dàng.
Trường hợp bạn muốn save vào file cũng không khó.
Mỗi khi admin thay đổi, lấy giá trị đó lưu vào file theo cấu trúc do mình định sẵn.
Ví dụ đặt tên file là option.cfg:
Code:
$max=5000; //giá trị này lấy từ sự lựa chọn của admin
$min=3000;
file_put_contents("option.cfg","<max>$max</max>\n<min>$min</min>");
Khi cần lấy ra thì dùng file_get_contents() rồi phân tích chuỗi đó để lấy giá trị.
Các hàm làm việc với file có thể tham khảo tại: http://w3schools.com/php/php_ref_filesystem.asp

Nếu bạn quen làm việc với xml thì có thể cho nó theo cấu trúc xml. Riêng mình tự định ra cấu trúc vẫn thích hơn

@honnhien: Cái bạn nói đó là file cấu hình (thường sử dụng khi các tham số này ít (thậm chí là không) thay đổi, được tạo ra lúc cài đặt và sử dụng về sau). VD như cấu hình DB chẳng hạn. Và file này rất quan trọng, nếu thiếu có thể không hoạt động nên hạn chế thay đổi.
haicop viết 12:45 ngày 10/10/2018
Theo mình làm như này linh hoạt :
Tạo 1 bảng khoảng giá
table khoang_gia
Field : ID, name, canduoi, cantren
Dữ liệu
1, Thông dụng , 0 ,15
2, Trung cấp , 15 , 30
3, Cao cấp ,30 ,10000
4.....

Trong admin bạn làm tùy chọn thay đổi table này, ngoài trang chủ bạn select các field này ra rồi echo sản phẩm,

Nếu đã làm để sửa được trong admin thì cho vào SQL hay hơn là file cònig
chesterben viết 12:44 ngày 10/10/2018
Theo mình, lưu vào file có vẻ ko được hay = lưu vào db. Vì phần admin của bạn còn nhiều thông số khác nữa. Viết phần admin kết nối db thì tốt hơn.
cayriver viết 12:43 ngày 10/10/2018
Sao cứ thích làm khó mình thế nhỉ.
Chỉ việc tạo thêm một trường phân cấp sản phẩm nữa trong bảng là được.
Rồi thì lúc áp giá sản phẩm muốn nó vào phân khúc sản phẩm nào thì chọn cho nó vào phân khúc ấy.
Toàn tự làm khó mình.
Bài liên quan
0