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['id']}&picname={$row['pic']}'>删除
43 $row['id']}'>修改
44 $row['id']}'>放入购物车
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
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 "$v['id']}'>删除 | ";
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"]<1
)
15 {
16 $_SESSION["shoplist"][
$id]["num"]=1
;
17 }
18 //跳转回我的购物车界面
19 header("Location:myCart.php"
);
20
21 ?>
updateCart.php
以下为index.php截图:
myCart.php截图:
最后送上一句:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈!!!!
http://www.bkjia.com/PHPjc/1005210.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1005210.htmlTechArticlePHP基础示例:商品信息管理系统v1.1,信息管理系统v1.1 实现目标:使用php和mysql写一个商品信息管理系统,并带有购物车功能 一、创建数据...