โปรแกรมบันทึกข้อมูลการสั่งซื้อ (ตะกร้าสินค้า) จะบันทึกลง 2 ตารางด้วยกัน
ต่อจาก WEB.25 ตะกร้าสินค้า php, Dreamweaver, Bootstrap ตอนที่ 3 Confirm Cart
ตารางแรกคือ tb_order ไว้เก็บข้อมูลผู้สั่งซื้อ สถานะการสั่งซื้อ และวันที่ทำรายการ
ส่วนตาางที่ 2 คือ tb_order_detail ไว้เก็บข้อมูลการสั่งซื้อสินค้า เช่น ไอดีสินค้า ราคา จำนวน เป็นต้น
มาสร้างตารางกันก่อนนะครับ
ตารางที่ 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
CREATE TABLE IF NOT EXISTS `tb_order` ( `order_id` int(10) NOT NULL, `name` varchar(100) COLLATE utf8_unicode_ci NOT NULL, `address` varchar(500) COLLATE utf8_unicode_ci NOT NULL, `email` varchar(100) COLLATE utf8_unicode_ci NOT NULL, `phone` varchar(20) COLLATE utf8_unicode_ci NOT NULL, `order_status` int(1) NOT NULL, `order_date` datetime NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; ALTER TABLE `tb_order` ADD PRIMARY KEY (`order_id`); ALTER TABLE `tb_order` MODIFY `order_id` int(10) NOT NULL AUTO_INCREMENT; |
ตารางที่ 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
CREATE TABLE IF NOT EXISTS `tb_order_detail` ( `d_id` int(10) NOT NULL, `order_id` int(11) NOT NULL, `p_id` int(11) NOT NULL, `p_qty` int(11) NOT NULL, `total` float NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; ALTER TABLE `tb_order_detail` ADD PRIMARY KEY (`d_id`); ALTER TABLE `tb_order_detail` MODIFY `d_id` int(10) NOT NULL AUTO_INCREMENT; |
จาก WE.25 ตะกร้าสินค้า php, Dreamweaver, Bootstrap ตอนที่ 3 Confirm Cart จะ action ฟอร์มกรอกข้อมูลผู้สั่งซื้อมาที่ไฟล์นี้ ก็คือไฟล์ 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 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 95 96 97 98 99 100 101 102 103 104 105 106 |
<?php error_reporting( error_reporting() & ~E_NOTICE ); session_start(); /* echo "<pre>"; print_r($_SESSION); echo "<hr>"; print_r($_POST); echo "</pre>"; */ ?> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Confirm</title> </head> <body> <!--สร้างตัวแปรสำหรับบันทึกการสั่งซื้อ --> <?php require_once('Connections/condb.php'); //Set ว/ด/ป เวลา ให้เป็นของประเทศไทย date_default_timezone_set('Asia/Bangkok'); $name = $_POST["name"]; $address = $_POST["address"]; $email = $_POST["email"]; $phone = $_POST["phone"]; $p_qty = $_POST["p_qty"]; $total = $_POST['total']; $order_date = date("Y-m-d H:i:s"); $status = 1; //บันทึกการสั่งซื้อลงใน order_detail mysql_db_query($database_condb, "BEGIN"); $sql1 = "INSERT INTO tb_order VALUES (NULL, '$name', '$address', '$email', '$phone', '$status', '$order_date' )"; $query1 = mysql_db_query($database_condb, $sql1) or die ("Error in query: $sql1 " . mysql_error()); $sql2 = "SELECT MAX(order_id) AS order_id FROM tb_order WHERE phone='$phone'"; $query2 = mysql_db_query($database_condb, $sql2); $row = mysql_fetch_array($query2); $order_id = $row['order_id']; foreach($_SESSION['shopping_cart'] as $p_id=>$p_qty) { $sql3 = "SELECT * FROM tbl_product where p_id=$p_id"; $query3 = mysql_db_query($database_condb, $sql3); $row3 = mysql_fetch_array($query3); $total=$row3['p_price']*$p_qty; $sql4 = "INSERT INTO tb_order_detail values(null, '$order_id', '$p_id', '$p_qty', '$total')"; $query4 = mysql_db_query($database_condb, $sql4); } if($query1 && $query4){ mysql_db_query($database_condb, "COMMIT"); $msg = "บันทึกข้อมูลเรียบร้อยแล้ว "; foreach($_SESSION['shopping_cart'] as $p_id) { unset($_SESSION['shopping_cart']); } } else{ mysql_db_query($database_condb, "ROLLBACK"); $msg = "บันทึกข้อมูลไม่สำเร็จ กรุณาติดต่อเจ้าหน้าที่ค่ะ "; } mysql_close($condb); ?> <script type="text/javascript"> alert("<?php echo $msg;?>"); window.location ='index.php'; </script> </body> </html> |
คลิปครับ ^_^
code อัพเดทจำนวนสินค้าหรือตัดสต๊อก ลองเปรียบเทียบกับ saveroder.php ด้านบนดูนะครับว่าต้องเพิ่ม code ส่วนไหนบ้าง
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 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <?php error_reporting( error_reporting() & ~E_NOTICE ); session_start(); /* echo "<pre>"; print_r($_SESSION); echo "<hr>"; print_r($_POST); echo "</pre>"; exit(); */ ?> <!--สร้างตัวแปรสำหรับบันทึกการสั่งซื้อ --> <?php require_once('Connections/condb.php'); //Set ว/ด/ป เวลา ให้เป็นของประเทศไทย date_default_timezone_set('Asia/Bangkok'); $mem_id = $_POST['mem_id']; $name = $_POST["name"]; $address = $_POST["address"]; $email = $_POST["email"]; $phone = $_POST["phone"]; $p_qty = $_POST["p_qty"]; $total = $_POST['total']; $order_date = date("Y-m-d H:i:s"); $status = 1; //บันทึกการสั่งซื้อลงใน order_detail mysql_db_query($database_condb, "BEGIN"); $sql1 = "INSERT INTO tbl_order VALUES (NULL, '$mem_id', '$name', '$address', '$email', '$phone', '$status', '$order_date' )"; $query1 = mysql_db_query($database_condb, $sql1) or die ("Error in query: $sql1 " . mysql_error()); $sql2 = "SELECT MAX(order_id) AS order_id FROM tbl_order WHERE mem_id='$mem_id'"; $query2 = mysql_db_query($database_condb, $sql2); $row = mysql_fetch_array($query2); $order_id = $row['order_id']; foreach($_SESSION['shopping_cart'] as $p_id=>$p_qty) { $sql3 = "SELECT * FROM tbl_product where p_id=$p_id"; $query3 = mysql_db_query($database_condb, $sql3); $row3 = mysql_fetch_array($query3); $total=$row3['p_price']*$p_qty; $count=mysql_num_rows($query3); $sql4 = "INSERT INTO tbl_order_detail values(null, '$order_id', '$p_id', '$p_qty', '$total')"; $query4 = mysql_db_query($database_condb, $sql4); //ตัดสต๊อก for($i=0; $i<$count; $i++){ $have = $row3['p_qty']; $stc = $have - $p_qty; $sql5 = "UPDATE tbl_product SET p_qty=$stc WHERE p_id=$p_id "; $query9 = mysql_db_query($database_condb, $sql5); } } if($query1 && $query4){ mysql_db_query($database_condb, "COMMIT"); foreach($_SESSION['shopping_cart'] as $p_id) { unset($_SESSION['shopping_cart']); echo "<script>"; echo "alert('บันทึกข้อมูลเรียบร้อยแล้ว');"; echo "window.location ='index.php'; "; echo "</script>"; } } else{ mysql_db_query($database_condb, "ROLLBACK"); echo "<script>"; echo "alert('บันทึกข้อมูลไม่สำเร็จ กรุณาติดต่อเจ้าหน้าที่ค่ะ');"; echo "window.location ='confirm_order.php'; "; echo "</script>"; } mysql_close($condb); ?> <br> |
คลิปทั้งหมด
ปล.งดให้คำปรึกษาการเขียนเว็บด้วย adobe dreamweaver แล้วครับ
ไปฝึกเขียนแบบใหม่ดีกว่าครับ คลิปสอนคลิก