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.
原文地址:https://www.cnblogs.com/cchulong/p/2820034.html