实现目标:使用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 67 8 54 55发布商品信息
9 53
1 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 }else116 {117 echo "修改失败".mysql_error();118 }119 echo " 查看商品信息";120 break;121 default:122 echo "错误";break;123 124 }125 //四、关闭数据库126 mysql_close($link);
1 "服装",2=>"数码",3=>"食品");12 13 14 ?>
1 2 3商品信息管理 4 5 67 8 53 54浏览商品信息
9 10
11
5212 20 ";35 echo "商品编号 13商品名称 14商品图片 15单价 16库存量 17添加时间 18操作 19";48 }49 //5.释放结果集,关闭数据库50 ?>51 { $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 删除 43 修改 44 放入购物车 45 46 ";47 echo "
1 2 3商品信息管理 4 5 67 0)19 {20 $shop=mysql_fetch_assoc($result);//解析出要修改的商品信息21 }else22 {23 die("没有找到要修改的商品信息");24 }25 26 ?>27 82 83编辑商品信息
28 81
1 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: //gif106 $im=imagecreatefromgif($picname);107 break;108 case 2: //jpg109 $im=imagecreatefromjpeg($picname);110 break;111 case 3: //png112 $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 }
1 5 6 7商品信息管理 8 9 1011 12 48 49添加商品到购物车
13 14 46 47
1 5 6 7商品信息管理 8 9 1011 12 52 53浏览我的购物车
13
14
5115 23 ";29 echo "商品id号 16商品名称 17商品图片 18单价 19数量 20小计 21操作 22";41 $sum+=$v["price"]*$v['num'];//累计金额42 }43 }44 ?>45 { $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 "46 50总计金额: 4748 49
1
1
以下为index.php截图:
myCart.php截图:
最后送上一句:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈!!!!