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.
  • 相关阅读:
    使用TCP
    socket基本
    windows内核原理及实现-----进程线程管理------3.4节中 windows中进程句柄
    windows内核原理及实现-----进程线程管理------3.3节中 windows中进程线程的数据结构
    winDBG用法
    windows调试异常机制
    MYSQL5上运行多个实例
    Mysql双主实战
    Mysql-Proxy使用
    新的旅程
  • 原文地址:https://www.cnblogs.com/cchulong/p/2820034.html
Copyright © 2011-2022 走看看