แจกระบบตะกร้าสินค้า php, Cart php + mysqli, ตะกร้าสินค้า php, ตัดสต๊อกสินค้า
แจกระบบตะกร้าสินค้า php code พร้อม database สำหรับนำไปเรียนรู้และพัฒนาต่อยอดนะครับ ในระบบประกอบด้วยหน้าต่างๆ ดังนี้ หน้าแสดงสินค้าทั้งหมด, หน้าแสดงรายละเอียดสินค้า, หน้าตะกร้าสินค้า, และหน้าสั่งซื้อ
ขายระบบพร้อมใช้ Cart PHP7, ตะกร้าสินค้า php, E-commerce, ขายสินค้าออนไลน์, เว็บอีคอมเมิร์ช, ตัดสต๊อก 6,900 บาท
ซื้อระบบนี้แถมคอร์สออนไลน์ D02 สอน php ระบบแคตตาล็อคออนไลน์ ระบบตะกร้าสินค้า จ่ายครั้งเดียว เข้าเรียนได้ตลอดชีพ
**รายละเอียดเพิ่มเติม คลิก
ตารางที่ใช้ อย่าลืมสร้าง database ก่อนนะครับแล้วค่อยนำ sql ไปวางเพื่อสร้างตาราง เช่น database ชื่อ “db_book”
ตารางสินค้า
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
CREATE TABLE `product` ( `p_id` int(11) NOT NULL auto_increment, `p_name` varchar(200) collate utf8_unicode_ci default NULL, `p_detail` text collate utf8_unicode_ci, `p_price` float default NULL, `p_pic` varchar(20) collate utf8_unicode_ci default NULL, `c_id` varchar(100) collate utf8_unicode_ci default NULL, PRIMARY KEY (`p_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=7 ; -- -- Dumping data for table `product` -- INSERT INTO `product` VALUES (1, 'book1', 'workshop นี้ได้แนะนำวิธีการสร้างเว็บไซต์จาก devbanban.com ', 349, 'book.jpg', '1'); INSERT INTO `product` VALUES (2, 'book2', 'workshop นี้ได้แนะนำวิธีการสร้างเว็บไซต์จาก devbanban.com ', 349, 'book.jpg', '1'); INSERT INTO `product` VALUES (3, 'book3', 'workshop นี้ได้แนะนำวิธีการสร้างเว็บไซต์จาก devbanban.com ', 195, 'book.jpg', '1'); INSERT INTO `product` VALUES (4, 'book4', 'workshop นี้ได้แนะนำวิธีการสร้างเว็บไซต์จาก devbanban.com ', 149, 'book.jpg', '1'); INSERT INTO `product` VALUES (5, 'book5', 'workshop นี้ได้แนะนำวิธีการสร้างเว็บไซต์จาก devbanban.com ', 249, 'book.jpg', '1'); INSERT INTO `product` VALUES (6, 'book6', 'workshop นี้ได้แนะนำวิธีการสร้างเว็บไซต์จาก devbanban.com ', 289, 'book.jpg', '1'); |
ตารางประเภทสินค้า
1 2 3 4 5 6 7 8 9 10 11 |
CREATE TABLE `category` ( `c_id` int(11) NOT NULL auto_increment, `c_name` varchar(200) collate utf8_unicode_ci NOT NULL, PRIMARY KEY (`c_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=2 ; -- -- Dumping data for table `category` -- INSERT INTO `category` VALUES (1, 'IT'); |
ตารางสั่งซื้อ
1 2 3 4 5 6 7 8 9 10 11 |
CREATE TABLE `order_head` ( `o_id` int(10) NOT NULL auto_increment, `o_dttm` datetime NOT NULL, `o_name` varchar(100) collate utf8_unicode_ci NOT NULL, `o_addr` varchar(500) collate utf8_unicode_ci NOT NULL, `o_email` varchar(100) collate utf8_unicode_ci NOT NULL, `o_phone` varchar(20) collate utf8_unicode_ci NOT NULL, `o_qty` int(11) NOT NULL, `o_total` float NOT NULL, PRIMARY KEY (`o_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ; |
ตารางรายละเอียดสั่งซื้อ
1 2 3 4 5 6 7 8 |
CREATE TABLE `order_detail` ( `d_id` int(10) NOT NULL auto_increment, `o_id` int(11) NOT NULL, `p_id` int(11) NOT NULL, `d_qty` int(11) NOT NULL, `d_subtotal` float NOT NULL, PRIMARY KEY (`d_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ; |
ไฟล์เชื่อมต่อฐานข้อมูล connect.php อย่าลืมสร้าง database ก่อนนะครับแล้วค่อยนำ sql ไปวางเพื่อสร้างตาราง
1 2 3 4 |
<?php $conn= mysqli_connect("localhost","root","password","db_book") or die("Error: " . mysqli_error($con)); mysqli_query($conn, "SET NAMES 'utf8' "); ?> |
หน้าแสดงสินค้าทั้งหมด product.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Product List</title> </head> <body> <table width="600" border="1" align="center" bordercolor="#666666"> <tr> <td width="91" align="center" bgcolor="#CCCCCC"><strong>ภาพ</strong></td> <td width="200" align="center" bgcolor="#CCCCCC"><strong>ชื่อหนังสือ</strong></td> <td width="44" align="center" bgcolor="#CCCCCC"><strong>ราคา</strong></td> <td width="100" align="center" bgcolor="#CCCCCC"><strong>รายละเอียดสินค้า</strong></td> </tr> <?php //connect db include("connect.php"); $sql = "select * from product order by p_id"; //เรียกข้อมูลมาแสดงทั้งหมด $result = mysqli_query($conn, $sql); while($row = mysqli_fetch_array($result)) { echo "<tr>"; echo "<td align='center'><img src='img/" . $row["p_pic"] ." ' width='80'></td>"; echo "<td align='left'>" . $row["p_name"] . "</td>"; echo "<td align='center'>" .number_format($row["p_price"],2). "</td>"; echo "<td align='center'><a href='product_detail.php?p_id=$row[p_id]'>คลิก</a></td>"; echo "</tr>"; } ?> </table> |
หน้าแสดงรายละเอียดสินค้า product_detail.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Product Detail</title> <link href="style.css" rel="stylesheet" type="text/css" /> </head> <body> <table width="600" border="0" align="center" class="square"> <tr><td colspan="3" bgcolor="#CCCCCC"><b>Product</b></td></tr> <?php //connect db include("connect.php"); $p_id = $_GET['p_id']; //สร้างตัวแปร p_id เพื่อรับค่า $sql = "select * from product where p_id=$p_id"; //รับค่าตัวแปร p_id ที่ส่งมา $result = mysqli_query($conn, $sql); $row = mysqli_fetch_array($result); //แสดงรายละเอียด echo "<tr>"; echo "<td width='85' valign='top'><b>Title</b></td>"; echo "<td width='279'>" . $row["p_name"] . "</td>"; echo "<td width='70' rowspan='4'><img src='img/" . $row["p_pic"] . " ' width='100'></td>"; echo "</tr>"; echo "<tr>"; echo "<td valign='top'><b>Detail</b></td>"; echo "<td>" . $row["p_detail"] . "</td>"; echo "</tr>"; echo "<tr>"; echo "<td valign='top'><b>Price</b></td>"; echo "<td>" .number_format($row["p_price"],2) . "</td>"; echo "</tr>"; echo "<tr>"; echo "<td colspan='2' align='center'>"; echo "<a href='cart.php?p_id=$row[p_id]&act=add'> เพิ่มลงตะกร้าสินค้า </a></td>"; echo "</tr>"; ?> </table> <p><center><a href="product.php">กลับไปหน้ารายการสินค้า</a></center> </body> </html> |
หน้าตะกร้าสินค้า cart.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
<?php session_start(); $p_id = $_GET['p_id']; $act = $_GET['act']; if($act=='add' && !empty($p_id)) { if(isset($_SESSION['cart'][$p_id])) { $_SESSION['cart'][$p_id]++; } else { $_SESSION['cart'][$p_id]=1; } } if($act=='remove' && !empty($p_id)) //ยกเลิกการสั่งซื้อ { unset($_SESSION['cart'][$p_id]); } if($act=='update') { $amount_array = $_POST['amount']; foreach($amount_array as $p_id=>$amount) { $_SESSION['cart'][$p_id]=$amount; } } ?> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Shopping Cart</title> </head> <body> <form id="frmcart" name="frmcart" method="post" action="?act=update"> <table width="600" border="0" align="center" class="square"> <tr> <td colspan="5" bgcolor="#CCCCCC"> <b>ตะกร้าสินค้า</span></td> </tr> <tr> <td bgcolor="#EAEAEA">สินค้า</td> <td align="center" bgcolor="#EAEAEA">ราคา</td> <td align="center" bgcolor="#EAEAEA">จำนวน</td> <td align="center" bgcolor="#EAEAEA">รวม(บาท)</td> <td align="center" bgcolor="#EAEAEA">ลบ</td> </tr> <?php $total=0; if(!empty($_SESSION['cart'])) { include("connect.php"); foreach($_SESSION['cart'] as $p_id=>$qty) { $sql = "select * from product where p_id=$p_id"; $query = mysqli_query($conn, $sql); $row = mysqli_fetch_array($query); $sum = $row['p_price'] * $qty; $total += $sum; echo "<tr>"; echo "<td width='334'>" . $row["p_name"] . "</td>"; echo "<td width='46' align='right'>" .number_format($row["p_price"],2) . "</td>"; echo "<td width='57' align='right'>"; echo "<input type='text' name='amount[$p_id]' value='$qty' size='2'/></td>"; echo "<td width='93' align='right'>".number_format($sum,2)."</td>"; //remove product echo "<td width='46' align='center'><a href='cart.php?p_id=$p_id&act=remove'>ลบ</a></td>"; echo "</tr>"; } echo "<tr>"; echo "<td colspan='3' bgcolor='#CEE7FF' align='center'><b>ราคารวม</b></td>"; echo "<td align='right' bgcolor='#CEE7FF'>"."<b>".number_format($total,2)."</b>"."</td>"; echo "<td align='left' bgcolor='#CEE7FF'></td>"; echo "</tr>"; } ?> <tr> <td><a href="product.php">กลับหน้ารายการสินค้า</a></td> <td colspan="4" align="right"> <input type="submit" name="button" id="button" value="ปรับปรุง" /> <input type="button" name="Submit2" value="สั่งซื้อ" onclick="window.location='confirm.php';" /> </td> </tr> </table> </form> </body> </html> |
หน้ายืนยันการสั่งซื้อสินค้า confirm.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
<?php session_start(); include("connect.php"); ?> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Checkout</title> </head> <body> <form id="frmcart" name="frmcart" method="post" action="saveorder.php"> <table width="600" border="0" align="center" class="square"> <tr> <td width="1558" colspan="4" bgcolor="#FFDDBB"> <strong>สั่งซื้อสินค้า</strong></td> </tr> <tr> <td bgcolor="#F9D5E3">สินค้า</td> <td align="center" bgcolor="#F9D5E3">ราคา</td> <td align="center" bgcolor="#F9D5E3">จำนวน</td> <td align="center" bgcolor="#F9D5E3">รวม/รายการ</td> </tr> <?php $total=0; foreach($_SESSION['cart'] as $p_id=>$qty) { $sql = "select * from product where p_id=$p_id"; $query = mysqli_query($conn, $sql); $row = mysqli_fetch_array($query); $sum = $row['p_price']*$qty; $total += $sum; echo "<tr>"; echo "<td>" . $row["p_name"] . "</td>"; echo "<td align='right'>" .number_format($row['p_price'],2) ."</td>"; echo "<td align='right'>$qty</td>"; echo "<td align='right'>".number_format($sum,2)."</td>"; echo "</tr>"; } echo "<tr>"; echo "<td align='right' colspan='3' bgcolor='#F9D5E3'><b>รวม</b></td>"; echo "<td align='right' bgcolor='#F9D5E3'>"."<b>".number_format($total,2)."</b>"."</td>"; echo "</tr>"; ?> </table> <p> <table border="0" cellspacing="0" align="center"> <tr> <td colspan="2" bgcolor="#CCCCCC">รายละเอียดในการติดต่อ</td> </tr> <tr> <td bgcolor="#EEEEEE">ชื่อ</td> <td><input name="name" type="text" id="name" required/></td> </tr> <tr> <td width="22%" bgcolor="#EEEEEE">ที่อยู่</td> <td width="78%"> <textarea name="address" cols="35" rows="5" id="address" required></textarea> </td> </tr> <tr> <td bgcolor="#EEEEEE">อีเมล</td> <td><input name="email" type="email" id="email" required/></td> </tr> <tr> <td bgcolor="#EEEEEE">เบอร์ติดต่อ</td> <td><input name="phone" type="text" id="phone" required /></td> </tr> <tr> <td colspan="2" align="center" bgcolor="#CCCCCC"> <input type="submit" name="Submit2" value="สั่งซื้อ" /> </td> </tr> </table> </form> </body> </html> |
ขายระบบพร้อมใช้ ระบบแจ้งซ่อมออนไลน์สำหรับองค์กร php7 8,000 บาท
ไฟล์บันทึกการสั่งซื้อลงฐานข้อมูล saveorder.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
<?php session_start(); include("connect.php"); ?> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Confirm</title> </head> <body> <!--สร้างตัวแปรสำหรับบันทึกการสั่งซื้อ --> <?php $name = $_POST["name"]; $address = $_POST["address"]; $email = $_POST["email"]; $phone = $_POST["phone"]; $total_qty = $_POST["total_qty"]; $total = $_POST["total"]; $dttm = Date("Y-m-d G:i:s"); //บันทึกการสั่งซื้อลงใน order_detail mysqli_query($conn, "BEGIN"); $sql1 = "insert into order_head values(null, '$dttm', '$name', '$address', '$email', '$phone', '$total_qty', '$total')"; $query1 = mysqli_query($conn, $sql1); //ฟังก์ชั่น MAX() จะคืนค่าที่มากที่สุดในคอลัมน์ที่ระบุ ออกมา หรือจะพูดง่ายๆก็ว่า ใช้สำหรับหาค่าที่มากที่สุด นั่นเอง. $sql2 = "select max(o_id) as o_id from order_head where o_name='$name' and o_email='$email' and o_dttm='$dttm' "; $query2 = mysqli_query($conn, $sql2); $row = mysqli_fetch_array($query2); $o_id = $row["o_id"]; //PHP foreach() เป็นคำสั่งเพื่อนำข้อมูลออกมาจากตัวแปลที่เป็นประเภท array โดยสามารถเรียกค่าได้ทั้ง $key และ $value ของ array foreach($_SESSION['cart'] as $p_id=>$qty) { $sql3 = "select * from product where p_id=$p_id"; $query3 = mysqli_query($conn, $sql3); $row3 = mysqli_fetch_array($query3); $total = $row3['p_price']*$qty; $sql4 = "insert into order_detail values(null, '$o_id', '$p_id', '$qty', '$total')"; $query4 = mysqli_query($conn, $sql4); } if($query1 && $query4){ mysqli_query($conn, "COMMIT"); $msg = "บันทึกข้อมูลเรียบร้อยแล้ว "; foreach($_SESSION['cart'] as $p_id) { //unset($_SESSION['cart'][$p_id]); unset($_SESSION['cart']); } } else{ mysqli_query($conn, "ROLLBACK"); $msg = "บันทึกข้อมูลไม่สำเร็จ กรุณาติดต่อเจ้าหน้าที่ค่ะ "; } ?> <script type="text/javascript"> alert("<?php echo $msg;?>"); window.location ='product.php'; </script> </body> </html> |
ผลการทำงาน
ขายระบบพร้อมใช้ ระบบยืมคืน เบิกจ่าย พัสดุ, อุปกรณ์สำนักงาน รองรับ php5 & php7 8,000 บาท
Code อัพเดทจำนวนสินค้า *ตัดสต๊อก เอาไปปรับแต่งเอานะครับ
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 <?phpsession_start();/*echo "<pre>";print_r($_SESSION);echo "<hr>";print_r($_POST);echo "</pre>";exit();*/?><!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Confirm</title></head><body><!--สร้างตัวแปรสำหรับบันทึกการสั่งซื้อ --><?phprequire_once('Connections/dbfreshcoffee.php');//Set ว/ด/ป เวลา ให้เป็นของประเทศไทยdate_default_timezone_set('Asia/Bangkok');$member_firstname = $_POST["member_firstname"];$member_address = $_POST["member_address"];$member_email = $_POST["member_email"];$member_phone = $_POST["member_phone"];$member_username=$_POST["member_username"];$p_qty = $_POST["p_qty"];$total = $_POST["total"];$order_date = date("Y-m-d H:i:s");$status = 1;//บันทึกการสั่งซื้อลงใน order_detailmysql_db_query($database_condb, "BEGIN");$sql1 = "INSERT INTO tb_order VALUES(NULL,'$member_firstname','$member_username','$member_address','$member_email','$member_phone','$order_date')";$query1 = mysql_db_query($database_dbfreshcoffee, $sql1) or die ("Error in query: $sql1 " . mysql_error());$sql2 = "SELECT MAX(order_id) AS order_id FROM tb_order WHERE member_phone='$member_phone'";$query2 = mysql_db_query($database_dbfreshcoffee, $sql2);$row = mysql_fetch_array($query2);$order_id = $row['order_id'];foreach($_SESSION['shopping_cart'] as $product_id=>$p_qty){echo $product_id;$sql3 = "SELECT * FROM tbl_product where product_id=$product_id";$query3 = mysql_db_query($database_dbfreshcoffee, $sql3);$row3 = mysql_fetch_array($query3);$total=$row3['product_price']*$p_qty;$count=mysql_num_rows($query3);$sql4 = "INSERT INTO tb_order_detailvalues(null,'$order_id','$product_id','$p_qty','$total')";$query4 = mysql_db_query($database_dbfreshcoffee, $sql4);//ตัดสต๊อกfor($i=0; $i<$count; $i++){$have = $row3['product_total'];$stc = $have - $p_qty;$sql9 = "UPDATE tbl_product SETproduct_total=$stcWHERE product_id=$product_id ";$query9 = mysql_db_query($database_dbfreshcoffee, $sql9);}/* stock */}if($query1 && $query4){mysql_db_query($database_dbfreshcoffee, "COMMIT");$msg = "บันทึกข้อมูลเรียบร้อยแล้ว ";foreach($_SESSION['shopping_cart'] as $product_id){unset($_SESSION['shopping_cart']);}}else{mysql_db_query($database_dbfreshcoffee, "ROLLBACK");$msg = "บันทึกข้อมูลไม่สำเร็จ กรุณาติดต่อเจ้าหน้าที่ค่ะ ";}mysql_close($dbfreshcoffee);?><script type="text/javascript">alert("<?php echo $msg;?>");window.location ='product.php';</script></body></html>
สนับสนุน DEVBANBAN
ธนาคารกรุงไทย สาขาเดอะมอลล์ท่าพระ
ชื่อบัญชี นายพิศิษฐ์ บวรเลิศสุธี เลขที่ 878-0-17747-6
————————————————————————————
ธนาคารไทยพาณิชย์ สาขามหาวิทยาลัยราชภัฏธนบุรี
ชื่อบัญชี นายพิศิษฐ์ บวรเลิศสุธี เลขที่ 406-359094-1