程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP基礎示例:商品信息管理系統v1.1,信息管理系統v1.1

PHP基礎示例:商品信息管理系統v1.1,信息管理系統v1.1

編輯:關於PHP編程

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 <html> 2 <head> 3 <title>商品信息管理</title> 4 </head> 5 <body> 6 <center> 7 <?php include("menu.php");//導入導航欄 ?> 8 <h3>發布商品信息</h3> 9 <form action="action.php?action=add" enctype="multipart/form-data" method="post"> 10 <table border="0" width="300"> 11 <tr> 12 <td align="right">名稱:</td> 13 <td><input type="text" name="name"/></td> 14 </tr> 15 <tr> 16 <td align="right">類型:</td> 17 <td> 18 <select name="typeid"> 19 <?php 20 include("dbconfig.php"); 21 foreach($typelist as $k=>$v) 22 { 23 echo "<option value='{$k}'>{$v}</option>"; 24 } 25 ?> 26 </select> 27 </td> 28 </tr> 29 <tr> 30 <td align="right">單價:</td> 31 <td><input type="text" name="price"/></td> 32 </tr> 33 <tr> 34 <td align="right">庫存:</td> 35 <td><input type="text" name="total"/></td> 36 </tr> 37 <tr> 38 <td align="right">圖片:</td> 39 <td><input type="file" name="pic"/></td> 40 </tr> 41 <tr> 42 <td align="right" valign="top">描述:</td> 43 <td><textarea rows="5" cols="20" name="note"></textarea></td> 44 </tr> 45 <tr> 46 <td colspan="2" align="center"> 47 <input type="submit" value="添加"/>&nbsp;&nbsp; 48 <input type="reset" value="重置"/> 49 </td> 50 </tr> 51 </table> 52 </form> 53 </center> 54 </body> 55 </html> 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 "<br> <a href='index.php'>查看商品信息<a>"; 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 "<br> <a href='index.php'>查看商品信息<a>"; 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 <html> 2 <head> 3 <title>商品信息管理</title> 4 </head> 5 <body> 6 <center> 7 <?php include("menu.php");//導入導航欄 ?> 8 <h3>浏覽商品信息<h3> 9 10 <table border="1" width="700"> 11 <tr> 12 <th>商品編號</th> 13 <th>商品名稱</th> 14 <th>商品圖片</th> 15 <th>單價</th> 16 <th>庫存量</th> 17 <th>添加時間</th> 18 <th>操作</th> 19 </tr> 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 "<tr>"; 35 echo "<td>{$row["id"]}</td>"; 36 echo "<td>{$row["name"]}</td>"; 37 echo "<td><img src='./uploads/s_{$row['pic']}'/></td>"; 38 echo "<td>{$row["price"]}</td>"; 39 echo "<td>{$row["total"]}</td>"; 40 echo "<td>".date("Y-m-d H:i:s",$row['addtime'])."</td>"; 41 echo "<td> 42 <a href='action.php?action=del&id={$row['id']}&picname={$row['pic']}'>刪除</a> 43 <a href='edit.php?id={$row['id']}'>修改</a> 44 <a href='addCart.php?id={$row['id']}'>放入購物車</a> 45 46 </td>"; 47 echo "</tr>"; 48 } 49 //5.釋放結果集,關閉數據庫 50 ?> 51 </table> 52 </center> 53 </body> 54 </html> index.php 1 <html> 2 <head> 3 <title>商品信息管理</title> 4 </head> 5 <body> 6 <center> 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 <h3>編輯商品信息</h3> 28 <form action="action.php?action=update" enctype="multipart/form-data" method="post"> 29 <input type="hidden" name="id" value="<?php echo $shop['id']; ?>" /> 30 <input type="hidden" name="oldpic" value="<?php echo $shop['pic']; ?>" /> 31 32 <table border="0" width="300"> 33 <tr> 34 <td align="right">名稱:</td> 35 <td><input type="text" name="name" value="<?php echo $shop['name']; ?>" /></td> 36 </tr> 37 <tr> 38 <td align="right">類型:</td> 39 <td> 40 <select name="typeid"> 41 <?php 42 include("dbconfig.php"); 43 foreach($typelist as $k=>$v) 44 { 45 $sd = ($shop['typeid']==$k)?"selected":"";//判斷是否當前的類型 46 echo "<option value='{$k}' {$sd}>{$v}</option>"; 47 } 48 ?> 49 </select> 50 </td> 51 </tr> 52 <tr> 53 <td align="right">單價:</td> 54 <td><input type="text" name="price" value="<?php echo $shop['price']; ?>" /></td> 55 </tr> 56 <tr> 57 <td align="right">庫存:</td> 58 <td><input type="text" name="total" value="<?php echo $shop['total']; ?>" /></td> 59 </tr> 60 <tr> 61 <td align="right">圖片:</td> 62 <td><input type="file" name="pic"/></td> 63 </tr> 64 <tr> 65 <td align="right" valign="top">描述:</td> 66 <td><textarea rows="5" cols="20" name="note"><?php echo $shop['note']; ?></textarea></td> 67 </tr> 68 69 <tr> 70 <td colspan="2" align="center"> 71 <input type="submit" value="修改" />&nbsp;&nbsp; 72 <input type="reset" value="重置" /> 73 </td> 74 </tr> 75 <tr> 76 <td align="right" valign="top">&nbsp;</td> 77 <td><img src="./uploads/<?php echo $shop['pic'];?>" /></td> 78 </tr> 79 </table> 80 </form> 81 </center> 82 </body> 83 </html> 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 <h2>商品信息管理--購物車</h2> 2 <a href="index.php">浏覽商品</a>| 3 <a href="add.php">添加商品</a>| 4 5 <a href="myCart.php">我的購物車</a>| 6 <a href="clearCart.php">清空購物車</a> 7 8 9 <hr width=80%/> menu.php 1 <?php 2 session_start();//啟動會話 3 4 ?> 5 <html> 6 <head> 7 <title>商品信息管理</title> 8 </head> 9 <body> 10 <center> 11 <?php include("menu.php");//導入導航欄 ?> 12 <h3>添加商品到購物車<h3> 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 </table> 47 </center> 48 </body> 49 </html> addCart 1 <?php 2 session_start();//啟動會話 3 4 ?> 5 <html> 6 <head> 7 <title>商品信息管理</title> 8 </head> 9 <body> 10 <center> 11 <?php include("menu.php");//導入導航欄 ?> 12 <h3>浏覽我的購物車<h3> 13 <table border="1" width="600"> 14 <tr> 15 <th>商品id號</th> 16 <th>商品名稱</th> 17 <th>商品圖片</th> 18 <th>單價</th> 19 <th>數量</th> 20 <th>小計</th> 21 <th>操作</th> 22 </tr> 23 <?php 24 $sum =0;//定義總金額的變量 25 if(isset($_SESSION["shoplist"])){ 26 foreach($_SESSION["shoplist"] as $v) 27 { 28 echo "<tr>"; 29 echo "<td>{$v['id']}</td>"; 30 echo "<td>{$v['name']}</td>"; 31 echo "<td><img src='./uploads/s_{$v['pic']}' /></td>"; 32 echo "<td>{$v['price']}</td>"; 33 echo "<td align='center'> 34 <button onclick='window.location.href=\"updateCart.php?id={$v['id']}&num=-1\"'>-</button> 35 {$v['num']} 36 <button onclick='window.location.href=\"updateCart.php?id={$v['id']}&num=+1\"'>+</button> 37 </td>"; 38 echo "<td>".($v["price"]*$v['num'])."</td>"; 39 echo "<td><a href='clearCart.php?id={$v['id']}'>刪除</a></td>"; 40 echo "</tr>"; 41 $sum+=$v["price"]*$v['num'];//累計金額 42 } 43 } 44 ?> 45 <tr> 46 <th>總計金額:</th> 47 <th colspan ="5" align="right"><?php echo $sum; ?></th> 48 <td>&nbsp;</td> 49 </tr> 50 </table> 51 </center> 52 </body> 53 </html> 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截圖:

最後送上一句:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈!!!!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved