文章教程

11.2.1目录结构

9/17/2020 9:38:49 PM 人评论 次浏览

11.2 目录结构与通用模块

本节将介绍实例的目录结构与通用模块。

11.2.1 目录结构

可以从人民邮电出版社的网站下载本实例的源代码,实例的源代码保存在2shou目录下,包含下面的子目录。

• class:用于保存数据库访问类。

• admin:用于存储系统管理员的后台操作脚本,包括公告管理、用户信息管理、商品分类管理、商品管理等功能。

• images:用于存储网页中的图片文件。

• user:用于存储注册用户的前台操作脚本,包括查看公告、查看商品信息、发布商品信息、修改用户信息等。

• user\images:用于保存上传的商品照片。

其他PHP文件都保存在本实例的根目录下。在开发比较大的Web应用系统时,建议将不同功能的脚本文件存放在不同的目录下,这样可以使系统条理清晰,便于管理。

将2shou目录复制到EclipsePHP的工作空间目录(例如C:\workspace)下,在EclipsePHP Studio中创建工程2shou,工程目录为C:\workspace\2shou,即可在EclipsePHP Studio中查看和调试本实例的代码。

11.2.2 设计数据库访问类

为了使PHP程序条理更加清晰,本实例将对数据库表的访问操作封闭为一个类,每个类对应一个PHP文件,文件名与对应的数据库表名相同。例如,表Bulletin对应的类文件为Bulletin.php,代码如下:

<?PHP

//本类用于保存对表Bulletin的数据库访问操作

//表的每个字段对应类的一个成员变量

Class Bulletin

{

public $Id;   // 记录编号

public $Title;   // 公告标题

public $Content;  // 公告内容

public $PostTime;  // 发布日期

public $Poster;  // 发布人

var $conn;

function __construct() {

//连接数据库,假定root用户的密码为pass

$this->conn = mysqli_connect("localhost", "root", "pass", "2shou");

mysqli_query($this->conn, "SET NAMES gbk");//设置编码格式,防止乱码

}

function __destruct() {

//关闭连接

mysqli_close($this->conn);

}

//获取公告信息

function GetBulletinInfo($bid) {

//设置查询的SELECT语句

$sql = "SELECT * FROM Bulletin WHERE Id='" . $bid . "'";

//打开记录集

$results = $this->conn->query($sql);

//读取公告数据

if($row = $results->fetch_row()) {

$this->Id = $bid;

$this->Title = $row[1];

$this->Content = $row[2];

$this->PostTime = $row[3];

$this->Poster = $row[4];

}

else {

$this->Id=0;

}

}

//获取所有公告信息,返回结果集

function GetBulletinlist() {

//设置查询的SELECT语句

$sql = "SELECT * FROM Bulletin ORDER BY PostTime DESC";

$results = $this->conn->query($sql);

return $results;

}

//获取所有公告信息,返回结果集

function GetRecentBulletinlist() {

//设置查询的SELECT语句

$sql = "SELECT * FROM Bulletin WHERE DateDiff(day, getdate(), Posttime)<=7";

$results = $this->conn->query($sql);

return $results;

}

//添加公告信息

function insert() {

$sql = "INSERT INTO Bulletin (Title, Content, PostTime, Poster) VALUES ('" . $this->Title . "','" . $this->Content . "','" . $this->PostTime . "','" . $this->Poster . "')";

//执行SQL语句

$this->conn->query($sql);

}

//修改公告信息

function update($bid) {

$sql ="UPDATE Bulletin SET Title='" . $this->Title . "', Content='" . $this->Content . "', PostTime='" . $this->PostTime . "', Poster='" . $this->Poster . "' WHERE Id=" . $bid;

//执行SQL语句

$this->conn->query($sql);

}

//批量删除公告信息

function delete($bid) {

$sql = "DELETE FROM Bulletin WHERE Id IN (" . $bid . ")";

//执行SQL语句

$this->conn->query($sql);

}

}

?>

在类Bulletin中为表Bulletin的每个字段定义了一个同名的成员变量,变量$conn是连接对象,用于连接数据库,执行SQL语句。

所有数据库操作类都保存在class目录下,请参照源代码和注释理解。下面介绍这些类中定义的成员函数。

1.Bulletin类

Bulletin类用来管理表Bulletin的数据库操作,类的成员函数如表11-5所示。

表11-5 Bulletin类的成员函数

figure_0229_0302

2.GoodsType类

GoodsType类用来管理表GoodsType的数据库操作,类的成员函数如表11-6所示。

表11-6 GoodsType类的成员函数

figure_0229_0303

3.Goods类

Goods类用来管理表Goods的数据库操作,类的成员函数如表11-7所示。

表11-7 Goods类的成员函数

figure_0230_0304

4.Users类

Users类用来管理表Users的数据库操作,类的成员函数如表11-8所示。

表11-8 Users类的成员函数

figure_0230_0305

教程类别