当客户将商品加入购物车购买后,如何得到商品的总价,假如 苹果单价10元一个 ,香蕉 5元一个,火龙果8元一个,购买了苹果3个,香蕉2个,火龙果5个,目前数据库是这样设计的 a表放id,商品名称,价格,b表放id(和a表的id相对应),购买的商品个数,如何得到最后的价格呢(最简单高效的办法),我目前的方法是先用多表查询将该客户下的购买的所有数据查询出来,然后在php中用foreach循环数组,然后将价格和个数相乘,最后相加得到结果,感觉效率不好

解决方案 »

  1.   

    我觉得你不应该把购物车里的商品放到数据表里,购物车商品可以放到SESSION里或COOKIE里,把商品ID,价格,数量放到里在就可以了。当客户下单的时候再放到订单表里,这样才是合理的,不然客户把商品放入购物车里不购买直接走人那表里的商品你还得手工删除。而且就算放到表里,你干麻要两个表呢?一个表无法完成吗?
      

  2.   

    这些数据量不大,完全可以做到前台,用cookie保存~
      

  3.   

    用session
      

  4.   

    给一个本人的思路吧再添加个C表(物品合计表),主键随机生成,同时写入SESSION中,并且每次添加或删除时,通过SESSION查询该表,添则加,删则减
    另外你这个B表再添加个C表的主键,便于每次添加删除时的查询计算
    其他还有一些具体操作就不多说了不过 ,使用JS计算确实也是一个好方法
    不足之处还请各位指出,共同学习
      

  5.   

    你这样做是完全没有问题的阿,单价和数量分别存储,而每种货物的价钱省略存储实际节省的是数据库的空间,减少了数据冗余,当然你也可以选择把每项货物的总价存储在B表里,减少了查询购物车物品时所产生的重复计算,但是势必以数据冗余为代价。至于其他的人说购物车里的东西不需要存储,这个肯定是不对的,因为比如逛淘宝,即使你只是放到购物车里不买,下次登录的时候这些信息还是在购物车里的,而且根据实际的体验来说,加入购物车和去购物车结算往往是在2个不同的页面,所以也不适合用JS来做
      

  6.   

    分析的很对  利用session和cookie就好了  楼主看看这个