PHP基础示例:商品信息管理系统v1.1,信息管理系统v1.1
实现目标:使用php和mysql写一个商品信息管理系统,并带有购物车功能
一、创建数据库和表
1.创建数据库和表:demodb
2.创建表格:goods
字段:商品编号,商品名称,商品类型,商品图片,单价,商品描述,库存量,添加时间
二、创建php文件编写代码(以下为要创建的php文件及其用途)
add.php 商品添加页面
edit.php 商品信息编辑表单页
index.php 商品信息浏览页
action.php 执行商品信息添加和修改及删除等操作处理
dbconfig.php 公共配置文件,数据库连接配置信息
menu.php 网站公共导航栏
uploads/ 上传图片的存放目录
function.php 公共函数库文件:图片信息的上传,等比缩放等处理函数
addCart.php 添加购物车信息的操作(向SESSION放入要购买的信息)
myCart.php 实现了购物车信息的浏览操作,并且实现商品信息的统计(小计和总价)
clearCart.php 实现了购物车信息的单个商品删除或清空购物车操作
updateCart.php 修改购物车中商品的数量,防止过小约束
各php文件关系图示:
好,那下面是代码部分:
首先是建表语句:
1 create database newsdb;
// 创建库语句
2
3 create table goods (
4 id
int (
10 ) unsigned
NOT NULL AUTO_INCREMENT,
5 name
varchar (
64 )
NOT NULL ,
6 typeid
int (
10 ) unsigned
NOT NULL ,
7 price
double (
6 ,
2 ) unsigned
NOT NULL ,
8 total
int (
10 ) unsigned
NOT NULL ,
9 pic
varchar (
32 )
NOT NULL ,
10 note
text ,
11 addtime
int (
10 ) unsigned
NOT NULL ,
12 PRIMARY KEY (`id`)
13 )
// 创建表语句
建表语句
以下为各php文件代码,需要的朋友可直接将各代码复制并放到同一目录下即可,还要在同目录下创建uplaods文件夹存放上传图片
1
2
3 商品信息管理
4
5
6
7 include("menu.php");// 导入导航栏 ?>
8 发布商品信息
9
53
54
55
add.php
1 php
2 // 执行商品信息的增、删、改的操作
3
4 //一、导入配置文件和函数库文件
5 require ("dbconfig.php"
);
6 require ("function.php"
);
7 // 二、连接MySQL,选择数据库
8 $link =
mysql_connect (HOST,USER,PASS) or
die ("数据库连接失败"
);
9 mysql_select_db (DBNAME,
$link );
10
11
12 // 三、获取action参数的值,并做对应的操作
13 switch (
$_GET ["action"
])
14 {
15 case "add":
// 添加
16 //1.获取添加信息
17 $name =
$_POST ["name"
];
18 $typeid =
$_POST ["typeid"
];
19 $price =
$_POST ["price"
];
20 $total =
$_POST ["total"
];
21 $note =
$_POST ["note"
];
22 $addtime =
time ();
23 // 2.验证()省略
24 if (
empty (
$name ))
25 {
26 die ("商品名称必须有值"
);
27 }
28 // 3.执行图片上传
29 $upinfo = uploadFile("pic","./uploads/"
);
30 if (
$upinfo ["error"]===
false )
31 {
32 die ("图片信息上传失败:".
$upinfo ["info"
]);
33 }
else
34 {
35 // 上传成功
36 $pic =
$upinfo ["info"];
// 获取上传成功的图片名
37
38 }
39 // 4.执行图片缩放
40 imageUpdateSize('./uploads/'.
$pic ,50,50
);
41 // 5.拼装sql语句,并执行添加
42 $sql = "insert into goods values(null,'{
$name }','{
$typeid }',{
$price },{
$total },'{
$pic }','{
$note }',{
$addtime })"
;
43 mysql_query (
$sql ,
$link );
44 // 6.判断并输出结果
45 if (
mysql_insert_id (
$link )>0
)
46 {
47 echo "商品发布成功"
;
48 }
else
49 {
50 echo "商品发布失败"
;
51 }
52 echo "
查看商品信息 ";
53
54 break ;
55 case "del": // 删除
56 //获取要删除的id号并拼装删除sql,执行
57 $sql = "delete from goods where id={$_GET ['id']}";
58
59 mysql_query ($sql ,$link );
60 // 执行图片删除
61 if (mysql_affected_rows ($link )>0)
62 {
63 @unlink ("./uploads/".$_GET ['picname']);
64 @unlink ("./uploads/s_".$_GET ['picname']);
65 }
66 // 跳转到浏览界面
67 header ("Location:index.php");
68 break ;
69
70 case "update": // 修改
71 //1.获取要修改的信息
72 $name = $_POST ["name"];
73 $typeid = $_POST ["typeid"];
74 $price = $_POST ["price"];
75 $total = $_POST ["total"];
76 $note = $_POST ["note"];
77 $id = $_POST ['id'];
78 $pic = $_POST ['oldpic'];
79 // 2.数据验证
80 if (empty ($name ))
81 {
82 die ("商品名称必须有值");
83 }
84 // 3.判断有无图片上传
85 if ($_FILES ['pic']['error']!=4)
86 {
87 // 执行上传
88 $upinfo = uploadFile("pic","./uploads/");
89 if ($upinfo ["error"]===false )
90 {
91 die ("图片信息上传失败:".$upinfo ["info"]);
92 }else
93 {
94 // 上传成功
95 $pic = $upinfo ["info"];// 获取上传成功的图片名
96 //4.有图片上传执行缩放
97 imageUpdateSize('./uploads/'.$pic ,50,50);
98 }
99 }
100
101
102 // 5.执行修改
103 $sql = "update goods set name='{$name }',typeid={$typeid },price={$price },total={$total },note='{$note }',pic='{$pic }' where id={$id }";
104 mysql_query ($sql ,$link );
105 // 6.判断是否修改成功
106 if (mysql_affected_rows ($link )>0)
107 {
108 if ($_FILES ['pic']['error']!=4)
109 {
110 // 若有图片上传,就删除老图片
111 @unlink ("./uploads/".$_POST ['oldpic']);
112 @unlink ("./uploads/s_".$_POST ['oldpic']);
113 }
114 echo "修改成功";
115 }else
116 {
117 echo "修改失败".mysql_error ();
118 }
119 echo " 查看商品信息 ";
120 break ;
121 default :
122 echo "错误";break ;
123
124 }
125 // 四、关闭数据库
126 mysql_close ($link );
action.php
1 php
2 // 公共信息配置文件
3
4 //数据库信息配置
5 define ("HOST","localhost");// 主机名
6 define ("USER","root"); // 用户名
7 define ("PASS","root"); // 密码
8 define ("DBNAME","demodb"); // 数据库名
9
10 //商品类型列表信息
11 $typelist =array (1=>"服装",2=>"数码",3=>"食品");
12
13
14 ?>
dbconfig.php
1
2
3 商品信息管理
4
5
6
7 include("menu.php");// 导入导航栏 ?>
8 浏览商品信息
9
10
11
12 商品编号
13 商品名称
14 商品图片
15 单价
16 库存量
17 添加时间
18 操作
19
20 php
21 // 从数据库中读取信息并输出到浏览器表格中
22 //1.导入配置文件
23 require ("dbconfig.php");
24 // 2.连接数据库,并选择数据库
25 $link = @mysql_connect (HOST,USER,PASS) or die ("数据库连接失败");
26 mysql_select_db (DBNAME,$link );
27 // 3.执行商品信息查询
28 $sql ="select * from goods";
29 $result = mysql_query ($sql ,$link );
30
31 // 4.解析商品信息(解析结果集)
32 while ($row = mysql_fetch_assoc ($result ))
33 {
34 echo "";
35 echo "{$row ["id"]} ";
36 echo "{$row ["name"]} ";
37 echo " ";
38 echo "{$row ["price"]} ";
39 echo "{$row ["total"]} ";
40 echo "".date ("Y-m-d H:i:s",$row ['addtime'])." ";
41 echo "
42 $row['pic']}'>删除
43 修改
44 放入购物车
45
46 ";
47 echo " ";
48 }
49 // 5.释放结果集,关闭数据库
50 ?>
51
52
53
54
index.php
1
2
3 商品信息管理
4
5
6
7 php
8 include ("menu.php");// 导入导航栏
9 //1.导入配置文件
10 require ("dbconfig.php");
11 // 2.连接数据库,并选择数据库
12 $link = @mysql_connect (HOST,USER,PASS) or die ("数据库连接失败");
13 mysql_select_db (DBNAME,$link );
14 // 3.获取要修改的商品信息
15 $sql ="select *from goods where id={$_GET ['id']}";
16 $result = mysql_query ($sql ,$link );
17 // 4.判断是否获取到要编辑的商品信息
18 if ($result &&mysql_num_rows ($result )>0)
19 {
20 $shop =mysql_fetch_assoc ($result );// 解析出要修改的商品信息
21 }else
22 {
23 die ("没有找到要修改的商品信息");
24 }
25
26 ?>
27 编辑商品信息
28
29
30
31
32
80
81
82
83
edit.php
1 php
2 // 公共函数库
3
4 /*
5 * 文件上传处理函数
6 * @param string filename 要上传的文件表单项名
7 * @param string $path 上传文件的保存路径
8 * @param array 允许的文件类型
9 * @return array 两个单元: ["error"] false:失败,ture:成功
10 * ["info"] 存放失败原因或成功的文件名
11 */
12
13 function uploadFile($filename ,$path ,$typelist =null )
14 {
15 // 1.获取上传文件的名字
16 $upfile = $_FILES [$filename ];
17 if (empty ($typelist ))
18 {
19 $typelist =array ("image/gif","image/jpg","image/jpeg","image/png","image/pjpeg","image/x-png");// 允许的文件类型
20 }
21 $res =array ("error"=>false );// 存放返回的结果
22 //2.过滤上传文件的错误号
23 if ($upfile ["error"]>0)
24 {
25 switch ($upfile ["error"])
26 {
27 case 1:
28 $res ["info"]="上传的文件超过了 php.ini中upload_max_filesize选项大小";
29 break ;
30 case 2:
31 $res ["info"]="上传文件的大小超过了HTML表单中MAX_FILE_SIZE选项";
32 break ;
33 case 3:
34 $res ["info"]="文件只有部分被上传";
35 break ;
36 case 4:
37 $res ["info"]="没有文件被上传";
38 break ;
39 case 6:
40 $res ["info"]="找不到临时文件夹";
41 break ;
42 case 7:
43 $res ["info"]="文件写入失败";
44 break ;
45 default :
46 $res ["info"]="未知错误!";
47 break ;
48
49 }
50 return $res ;
51 }
52 // 3.本次文件大小的限制
53 if ($upfile ["size"]>1000000)
54 {
55 $res ["info"]="上传文件过大!";
56 return $res ;
57 }
58 // 4.过滤类型
59 if (!in_array ($upfile ["type"],$typelist ))
60 {
61 $res ["info"]="上传类型不符!".$upfile ["type"];
62 return $res ;
63 }
64 // 5.初始化下信息(为图片产生一个随机的名字)
65 $fileinfo = pathinfo ($upfile ["name"]);
66 do
67 {
68 $newfile = date ("YmdHis").rand (1000,9999).".".$fileinfo ["extension"];// 随机产生名字
69
70 }while (file_exists ($newfile ));
71 // 6.执行上传处理
72 if (is_uploaded_file ($upfile ["tmp_name"]))
73 {
74 if (move_uploaded_file ($upfile ["tmp_name"],$path ."/".$newfile ))
75 {
76 // 将上传成功后的文件名赋给返回数组
77 $res ["info"]=$newfile ;
78 $res ["error"]=true ;
79 return $res ;
80 }else
81 {
82 $res ["info"]="上传文件失败!";
83 }
84 }else
85 {
86 $res ["info"]="不是一个上传的文件";
87 }
88 return $res ;
89 }
90 // ==================================================
91 /*
92 *
93 * 等比缩放函数(以保存的方式实现)
94 * @param string $picname 被缩放的处理图片源
95 * @param int $maxx 缩放后的图片的最大宽度
96 * @param int $maxy 缩放后图片的最大高度
97 * @param string $pre 缩放后图片名的前缀名
98 * @param string 返回后的图片名称(带路径),如a.jpg=>s_a.jpg
99 */
100 function imageUpdateSize($picname ,$maxx =100,$maxy =100,$pre ="s_"){
101 $info =getimagesize ($picname ); // 获取图片的基本信息
102 $w = $info [0];// 获取宽度
103 $h = $info [1]; // 获取高度
104 switch ($info [2]){
105 case 1: // gif
106 $im =imagecreatefromgif($picname );
107 break ;
108 case 2: // jpg
109 $im =imagecreatefromjpeg($picname );
110 break ;
111 case 3: // png
112 $im =imagecreatefrompng($picname );
113 break ;
114 default :
115 die ("图片类型错误");
116 }
117 // 计算缩放比例
118 if (($maxx /$w )>($maxy /$h )){
119 $b =$maxy /$h ;
120 }else {
121 $b =$maxx /$w ;
122 }
123 // 计算缩放后的尺寸
124 $nw =floor ($w *$b );
125 $nh =floor ($h *$b );
126 // 创建一个新的图像源
127 $nim =imagecreatetruecolor($nw ,$nh );
128 // 执行等比缩放
129 imagecopyresampled($nim ,$im ,0,0,0,0,$nw ,$nh ,$w ,$h );
130 // 输出图像
131 $picinfo =pathinfo ($picname );
132 $newpicname =$picinfo ["dirname"]."/".$pre .$picinfo ["basename"];
133
134 switch ($info [2]){
135 case 1:
136 imagegif($nim ,$newpicname );
137 break ;
138 case 2:
139 imagejpeg($nim ,$newpicname );
140 break ;
141 case 3:
142 imagepng($nim ,$newpicname );
143 break ;
144 default :
145 echo "图片压缩错误";
146 }
147 // 释放图片资源
148 imagedestroy($im );
149 imagedestroy($nim );
150 // 返回结果
151 return $newpicname ;
152 }
function.php
1 商品信息管理--购物车
2 浏览商品 |
3 添加商品 |
4
5 我的购物车 |
6 清空购物车
7
8
9
menu.php
1 php
2 session_start ();
// 启动会话
3
4 ?>
5
6
7 商品信息管理
8
9
10
11 include("menu.php");// 导入导航栏 ?>
12 添加商品到购物车
13
14 php
15 // 从数据库中读取要购买的信息并添加到购物车中
16 //1.导入配置文件
17 require ("dbconfig.php");
18 // 2.连接数据库,并选择数据库
19 $link = @mysql_connect (HOST,USER,PASS) or die ("数据库连接失败");
20 mysql_select_db (DBNAME,$link );
21 // 3.执行商品信息查询(获取要购买的信息)
22 $sql ="select * from goods where id={$_GET ['id']}";
23 $result = mysql_query ($sql ,$link );
24
25 // 4.判断是否没有找到要购买的信息,若有就读取出要购买的信息
26 if (empty ($result ) || mysql_num_rows ($result )==0)
27 {
28 die ("没有找到要购买的信息!");
29 }else
30 {
31 $shop = mysql_fetch_assoc ($result );
32 }
33 $shop ["num"]=1;// 添加一个数量的字段
34 //5.放入购物车中(若已存在的商品实现数量累加)
35 if (isset ($_SESSION ["shoplist"]{$shop ['id']}))
36 {
37 // 若存在数量增加1
38 $_SESSION ["shoplist"][$shop ['id']]["num"]++;
39 }else
40 {
41 // 若不存在,作为新购买的商品添加到购物车中
42 $_SESSION ["shoplist"][$shop ['id']]=$shop ;
43 }
44
45 ?>
46
47
48
49
addCart
1 php
2 session_start ();
// 启动会话
3
4 ?>
5
6
7 商品信息管理
8
9
10
11 include("menu.php");// 导入导航栏 ?>
12 浏览我的购物车
13
14
15 商品id号
16 商品名称
17 商品图片
18 单价
19 数量
20 小计
21 操作
22
23 php
24 $sum =0;// 定义总金额的变量
25 if (isset ($_SESSION ["shoplist"])){
26 foreach ($_SESSION ["shoplist"] as $v )
27 {
28 echo "";
29 echo "{$v ['id']} ";
30 echo "{$v ['name']} ";
31 echo " ";
32 echo "{$v ['price']} ";
33 echo "
34 -
35 {$v ['num']}
36 +
37 ";
38 echo "".($v ["price"]*$v ['num'])." ";
39 echo "删除 ";
40 echo " ";
41 $sum +=$v ["price"]*$v ['num'];// 累计金额
42 }
43 }
44 ?>
45
46 总计金额:
47
echo $sum ; ?>
48
49
50
51
52
53
myCart.php
1 php
2
3 // 删除购物车session中的信息
4 session_start ();
// 启动会话
5
6 //判断是删除一个商品还是清空购物车
7 if (
$_GET ['id'
])
8 {
9 // 只删除一种商品
10 unset (
$_SESSION ['shoplist'][
$_GET ['id'
]]);
11 }
else
12 {
13 // 清空session中的商品
14 unset (
$_SESSION ["shoplist"
]);
15 }
16
17
18 // 跳转到浏览购物车界面
19 header ("Location:myCart.php"
);
20 ?>
clearCart.php
1 php
2 session_start ();
// 启动会话
3 //修改购物车中的信息
4
5 //获取要修改的信息
6
7 $id =
$_GET ['id'
];
8 $num =
$_GET ['num'
];
9
10 // 修改商品信息
11 $_SESSION ["shoplist"][
$id ]["num"]+=
$num ;
12
13 // 防止商品数量过小
14 if (
$_SESSION ["shoplist"][
$id ]["num"])
15 {
16 $_SESSION ["shoplist"][
$id ]["num"]=1
;
17 }
18 // 跳转回我的购物车界面
19 header ("Location:myCart.php"
);
20
21 ?>
updateCart.php
以下为index.php截图:
myCart.php截图:
最后送上一句:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈!!!!
Kenyataan: Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn