zoukankan      html  css  js  c++  java
  • JoshChen_php 简单的商城网站功能原理(一)

    首先,这是我在博客园的第一篇文章!看着一些厉害的大牛们,写的那么好的文章!真是羡慕不已。

    今天就利用这次机会好好的也发挥下自己哈!希望各位可以多多指教。有不好之处记得评论哦,本人正处于学习中哈。

    临近期末了,也正好给自己复习复习,回顾一下整个学期来所学的东西。

    第一:要先明确一下需求。

          1、用户注册登陆

      2、后台分类添加

      3、后台商品添加

      4、前台显示分类,例如格式为:手机(3) 数量为改分类下的所有商品数量。

      5、前台显示商品列表

      6、商品显示分页显示,例如格式为:<Prev 1  2  3 4  5  Next>   当前页面显示在中间,自动补齐功能

      7、商品详细页,有难点是:一张主图,多张小图。

      8、加入购物车(有修改数量功能,删除功能)

      9、结算填写收获地址,结账数据提交到数据库

      10、后台订单显示页

    第二:需求明确后,我们就要开始设计数据库了。在设计数据库的前提下,我们又要搞定好各个表的各种关系。

      1、用户表(id,username,userpwd,ctime)由于是简单的商城网站实现,故不考虑太多的权限以及另外的功能。所以用户表较为简单。

      2、根据后台的分类添加  ----分类表(字段包括:id,pid,name,csort分别代表id,父id,分类名,排序)

      3、商品表(id,name,title,details,prices,ctime,category)   在关系中与分类表是多对一的关系。一个分类可以存放多个商品

      4、附件表(id,name,oname,type,size,extname,ctime,goods)也可称为是图片表,一个商品对应的多个图片。

      5、订单表(id,code(订单编号),total,user,ctime,st_name,st_address,st_postcode(邮编),st_mobile,st_phone)

      6、订单项表(id,goods,number,subtotal,orders) --该表由于考虑到在一个订单里面可能会存在多个不同的商品。

    第三:有了需求,有了数据库,有了思路。就来赶紧完成最好完成的一块了。Model模型。当然在模型中,基本上的字段都是和数据库是一样,在这我就不一一打出来了,但是我会把我觉得需要考虑以及需要注意的重点位置给写出来。

      model的话,其实也就是一个数据临时存放的对象。

      对于商品表的model我觉得有一点是需要记住的,就是获取第一张图片。下面是商品表的model

      class Goods{

        ......

        private $firstimg;

        private $attachs=array();

        下面的get,set就不一一列出来了。就列个取出第一张图片的get,set就可以了。

        public function getFirstimg(){

          if(count($this->attachs)>0)

          {

            $this->firstimg=$this->attachs[0];

          }else{

            $defaultimg=new Attach();

            $defaultimg->setName("noimg.jpg");   //如果没有图片就给他初始个图片。

            $this->firstimg=$defaultimg;

          }

          return $this->firstimg;

        }

        ......

      }

      第二个是订单项的model,在这个model里面,主要是有个小计的功能。当你存进来的时候就要事先把小计给计算出来。

      所以需要一个构造函数:

      function __construct($id,$goods,$number)

      {

        $this->id=$id;

        $this->goods=$goods;

        $this->number=$number;

        $this->subtotal=$goods->getPrice()*$number;

      }

      这样就实现了小计的功能了。

      

    第三是订单model 在当你把所有订单项放在同个订单的时候要取出总计,故当存入订单项后就要计算出总计。

      public function setOrderitems($orderitems){

        $this->orderitems=$orderitems;

        $total=0;

        for($i=0;$i<count($this->orderitems);$i++)

        {

          $total+=$this->orderitems[$i]->getSubtotal();

        }

        $this->total=$total;

      }

      public function getTotal(){

        $total=0;

        for($i=0;$i<count($this->orderitems);$i++)

        {

          $total+=$this->orderitems[$i]->getSubtotal();

        }

        $this->total=$total;

        return $this->total;

      }

      好了,前期功能终于做好了。剩下的就是DAO(我们所说的与数据库操作的文件_增删查改等),和程序的控制器了。

      今天就到期为止了。期待下篇文章的诞生吧哈。也希望自己能够在考试之前,整体的过一遍。

      下一篇我将会继续DAO的完善。

      希望大家可以多多点评。学生一名,写的不好,请谅解。

    人的记忆非常有限,所以我记录的不只是给大家看的,更是给未来的自己看的。 乘着年轻,记录与分享着程序猿的经验与快乐。主公phper——做世界上最不苦逼的程序er.
  • 相关阅读:
    168. Excel Sheet Column Title
    171. Excel Sheet Column Number
    264. Ugly Number II java solutions
    152. Maximum Product Subarray java solutions
    309. Best Time to Buy and Sell Stock with Cooldown java solutions
    120. Triangle java solutions
    300. Longest Increasing Subsequence java solutions
    63. Unique Paths II java solutions
    221. Maximal Square java solutions
    279. Perfect Squares java solutions
  • 原文地址:https://www.cnblogs.com/cchulong/p/2820034.html
Copyright © 2011-2022 走看看