台灣最大程式設計社群網站
線上人數
1127
 
會員總數:246133
討論主題:189712
歡迎您免費加入會員
討論區列表 >> PHP >> 商品價格顯示問題請教
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
商品價格顯示問題請教
價值 : 50 QP  點閱數:796 回應數:9
樓主

leo
門外漢
0 11
228 22
發送站內信

目前在學習製作購物車想嘗試做依造權限顯示不同優惠價格如下

當admin登入 <<<顯示7折價p_price7
當webmaster登入 <<<顯示7折價p_price7
當fbomember登入 <<<顯示7折價p_price7
當vipmember登入 <<<顯示7折價p_price7
當hopevip登入 <<<顯示7折價p_price7
當hopemember登入 <<<顯示8折價p_price8
當member登入 <<<顯示原價p_price


目前只會這樣顯示單一價格




要如何才能達成不同等級顯示不同的優惠價格?



以下是我已做的資料表

shop1 table
shop_id, shop_name


shop2 table
p_id, shop_id, p_name, p_price, p_price8, p_price7, p_open, p_pic, p_content, p_date, p_year, p_month
這個是原價 這個是8折 這個是7折

member table
id, username, password, uname, userpid, sex, birthday, orderpaper, phone, area, cityarea, cuszip, cusadr, level, recommender, date


有需要修改資料表或新增資料表嗎??




如有表達錯誤請指教謝謝

搜尋相關Tags的文章: [ 不同權限顯示不同價格 ] ,
本篇文章發表於2015-07-13 20:17
1樓
不錯的參考

麥兜照日光
捐贈 VP 給 麥兜照日光 檢舉此回應
你好
方法其實很多.或許你進入思考的盲點沒想到
提供參考看看
方法一(根據你現有的資訊)
看來你是利用level 來判斷,那麼在顯示價格那邊
舉例如下

<span class="font_red">nt:<?php echo $curprice; ?>元</span>

方法二 新增一張table
shop3 table(什麼level對應的價格)
p_price,level
利用sql 撈出當下使用者的level對應的價格
<span class="font_red">nt:<?php echo $row['p_price']; ?>元</span>


以上,希望對你有幫助!

本篇文章回覆於2015-07-14 09:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
其實感覺你的思考方式有點錯誤。

要是我會用如下的做法
價格因該是要一個原價去統一的。
然後在各等級中設定不同的折扣的做法。

如原價1000元的東西

當admin登入 *0.7 (7折)
當webmaster登入 *0.7 (7折)
當fbomember登入 *0.7 (7折)
當vipmember登入 *0.7 (7折)
當hopevip登入 *0.7 (7折)
當hopemember登入 *0.8 (8折)
當member登入 *1 (不打折)

這樣只要在會員群組上設定好他們的折扣。
這樣你在價格上就可以用 原價*折扣 的方式來顯示。

當然用直接相乘折扣可能會有小數點的問題。則可以用round floor ceil等函數來將小數點處理掉。

這樣的設計會比較單純多。在商品的定價上也比較不容易出狀況才對。
本篇文章回覆於2015-07-14 10:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

leo
檢舉此回應
謝謝指導我真的打結了= ="

所以我要新增一個資料表
shop3 table
id, level, discount
1, admin, 0.7
2, webmaster, 0.7
3, fbomember, 0.7
4, vipmember, 0.7
5, hopevip, 0.7
6, hopemember, 0.8
7, member, 1

這樣設定好他們個別的折扣

版大請問您的方式能否提供範例學習呢??
本篇文章回覆於2015-07-14 11:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

leo
檢舉此回應
麥兜大您的方法一



是這樣對嗎??
本篇文章回覆於2015-07-14 13:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
你好
回#4.是的;不過我只是提供概念.
另外有時候換個想法.你自己的問題就會解決了!
加油!
本篇文章回覆於2015-07-14 13:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

leo
檢舉此回應
回#2浩瀚版大

請問您的方式有沒有簡單範例可借學習呢??
本篇文章回覆於2015-07-15 16:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

羅伯斯
檢舉此回應
2樓的回覆個人覺得才是較為正確的方向
這樣做不需要在資料表設定多個欄位存放價格資料
只要程式以一個判斷式,檢查登入者的等級
再依登入者的等級,用原價*折扣率,即能達到要求
以vb程式為例
<pre lang="vb">
select case 登入者等級
case is = "a"
售價 = 原價 * 折扣率
case is = "b"
售價 = 原價 * 折扣率
case is = "c"
售價 = 原價 * 折扣率
case is = "d"
售價 = 原價 * 折扣率
end select
本篇文章回覆於2015-07-15 19:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

leo
檢舉此回應
跟麥兜大的方法一是不是差不多呢?

運用方式有點不同!
本篇文章回覆於2015-07-17 08:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
不錯的參考

LaLa
檢舉此回應
單純以資料表的角度來看
姑且不論是否有多店,以單一店來看(以下是資料庫的規劃,不是拿你的來當範例,只供參考)

table 1:book 這個比較單純,以書的資料為主就不累述 (可做更多的是庫存量的部份)

table 2:role 角色,定義人員的角色,以及折扣率等 (欄位 role_type:角色、role_discount折扣率,等等的說明會用到)。

table 3:member 這個table也比較單純,主要是以會員的資料為主,重點是還要加上 role_id (也就是這個table裡會有一個role_id,剛看你的table1 與table2 有使用到"參考id"的概含就不再累述資料庫結構的"primary foreign key"的概念)

登入時,除check member table之外,再另外join role table取得它的role_type(角色) 以及 折扣率(role_discount),並且放在session中。

在你顯示書籍價格時,取得session中的折扣率,顯示的價格就直接以book_price * role_discount,就是顯示的價格了。
若是折扣率有所異動時,只需更新role table裡的role_discount即可,不需去變更程式。

良好的資料庫的設計結構輔助程式,會讓你的程式performance更好。
本篇文章回覆於2015-07-21 10:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.