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
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截图:
最后送上一句:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈!!!!