
PHP Workshop ระบบตะกร้าสั่งซื้อสินค้า เป็นตัวอย่าง Code โดยใช้ความฟังก์ชั่น PHP Array และ ฟังก์ชั่น Session ในการทำงานของระบบตะกร้าโดยดึงข้อมูลสินค้าจาก MySQL (ฐานข้อมูล) มาแสดง ส่วนหลักการทำงานของ Code นั้นเป็นหลักการทำงานแบบง่ายๆ ผู้อ่านและผู้ศึกษาสามารถทำความเข้าใจในบทความนี้ได้อย่างรวดเร็ว โดยจะมีรูปภาพพร้อมคำบรรยายประกอบใต้ภาพ
ความสามารถของระบบ Shopping cart ที่ผู้เขียนได้สร้างขึ้นนั้นมีดังต่อไปนี้
– แสดงรายการสินค้าจากฐานข้อมูลโดยใช้ฐานข้อมูล MySQL
– เก็บข้อมูลของสินค้าลงในตะกร้าสินค้าโดยใช้ Session และ Array
– เก็บสินค้าลงในตะกร้าสินค้าซ้ำรายการได้โดยนำไปเพิ่มจำนวนที่มีอยู่ (บันทึกเพิ่มจำนวน)
– แสดงจำนวนสินค้าในตะกร้าสินค้า
– กำหนดจำนวนสินค้าในหน้าตะกร้าสินค้าได้ตามที่ต้องการ
– ลบสินค้าออกจากตะกร้าสินค้าได้ตามที่ต้องการ
– ระบบจัดเก็บข้อมูลการสั่งซื้อพร้อมรายละเอียดผู้สั่งซื้อลงในฐานข้อมูล MySQL
สร้างฐานข้อมูลชื่อ shopping_cart หลังจากสร้างเสร็จเรียบร้อยแล้วให้นำ Script SQL ด้านล่างนี้ไป Run เพื่อทำการสร้างตาราง
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 |
— phpMyAdmin SQL Dump — version 4.0.9 — http://www.phpmyadmin.net — — Host: 127.0.0.1 — Generation Time: Apr 15, 2014 at 06:58 PM — Server version: 5.5.34 — PHP Version: 5.4.22 SET SQL_MODE = “NO_AUTO_VALUE_ON_ZERO”; SET time_zone = “+00:00”; — — Database: `shopping_cart` — — ——————————————————– — — Table structure for table `orders` — CREATE TABLE IF NOT EXISTS `orders` ( `id` int(11) NOT NULL AUTO_INCREMENT, `order_date` datetime NOT NULL, `order_fullname` varchar(100) COLLATE utf8_unicode_ci NOT NULL, `order_address` tinytext COLLATE utf8_unicode_ci NOT NULL, `order_phone` varchar(10) COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=5 ; — — Table structure for table `order_details` — CREATE TABLE IF NOT EXISTS `order_details` ( `id` int(11) NOT NULL AUTO_INCREMENT, `order_detail_quantity` tinyint(4) NOT NULL, `order_detail_price` decimal(10,2) NOT NULL, `product_id` int(11) NOT NULL, `order_id` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=9 ; — — Table structure for table `products` — CREATE TABLE IF NOT EXISTS `products` ( `id` int(11) NOT NULL AUTO_INCREMENT, `product_code` varchar(60) COLLATE utf8_unicode_ci NOT NULL, `product_name` varchar(60) COLLATE utf8_unicode_ci NOT NULL, `product_desc` tinytext COLLATE utf8_unicode_ci NOT NULL, `product_img_name` varchar(60) COLLATE utf8_unicode_ci NOT NULL, `product_price` decimal(10,2) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `product_code` (`product_code`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=4 ; — — Dumping data for table `products` — INSERT INTO `products` (`id`, `product_code`, `product_name`, `product_desc`, `product_img_name`, `product_price`) VALUES (1, ‘P00001’, ‘iPhone 5s’, ‘โทรศัพท์คุณภาพยี่ห้อ Apple’, ‘iphone5s.jpg’, ‘25000.00’), (2, ‘P00002’, ‘Samsung Galaxy S4’, ‘โทรศัพท Andriod ยอดนิยม’, ‘ss4.jpg’, ‘17890.00’), (3, ‘P00003’, ‘Samsung Galaxy Note3’, ‘โทรศัพท์สำหรับคนชอบจด’, ‘note3.jpg’, ‘23000.00’); |
1. สร้างไฟล์เชื่อมต่อฐานข้อมูลชื่อ connect.php แล้วนำโค๊ดด้านล่างนี้ใส่
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php /* * set var */ $cfHost = "localhost"; $cfUser = "root"; $cfPassword = ""; $cfDatabase = "shopping_cart"; /* * connection mysql */ $meConnect = mysql_connect($cfHost, $cfUser, $cfPassword) or die("Error conncetion mysql..."); $meDatabase = mysql_select_db($cfDatabase); mysql_query("SET NAMES UTF8"); ?> |
2. คัดลอกโฟล์เดอร์ Bootstrap และโฟล์เดอร์ images ไปวางในโฟล์เดอร์โปรเจ็ค เช่น www/shopping_cart/ เป็นต้น โดยสามารถดาวน์โหลดไฟล์ได้จากด้านล่างบทความเรื่องนี้ (ท้ายบทความ)
3. สร้าง Project ใหม่แล้ว เพิ่ม code ในตัวอย่างด้านล่างนี้ลงไปในไฟล์ index.php ซึ่งการทำงานของไฟล์ index.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 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
<?php session_start(); require 'connect.php'; $meSql = "SELECT * FROM products "; $meQuery = mysql_query($meSql); $action = isset($_GET['a']) ? $_GET['a'] : ""; $itemCount = isset($_SESSION['cart']) ? count($_SESSION['cart']) : 0; if(isset($_SESSION['qty'])){ $meQty = 0; foreach($_SESSION['qty'] as $meItem){ $meQty = $meQty + $meItem; } }else{ $meQty=0; } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>itoffside.com shopping cart</title> <!-- Bootstrap --> <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet"> <link href="bootstrap/css/nava.css" rel="stylesheet"> <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> <![endif]--> </head> <body> <div class="container"> <!-- Static navbar --> <div class="navbar navbar-default" role="navigation"> <div class="container-fluid"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="#">Shopping Cart - ItOffside.com</a> </div> <div class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li class="active"><a href="index.php">หน้าแรกสินค้า</a></li> <li><a href="cart.php">ตะกร้าสินค้าของฉัน <span class="badge"><?php echo $meQty; ?></span></a></li> </ul> </div><!--/.nav-collapse --> </div><!--/.container-fluid --> </div> <!-- Main component for a primary marketing message or call to action --> <h3>หน้าแรกของสินค้า</h3> <?php if($action == 'exists'){ echo "<div class=\"alert alert-warning\">เพิ่มจำนวนสินค้าแล้ว</div>"; } if($action == 'add'){ echo "<div class=\"alert alert-success\">เพิ่มสินค้าลงในตะกร้าเรียบร้อยแล้ว</div>"; } if($action == 'order'){ echo "<div class=\"alert alert-success\">สั่งซื้อสินค้าเรียบร้อยแล้ว</div>"; } if($action == 'orderfail'){ echo "<div class=\"alert alert-warning\">สั่งซื้อสินค้าไม่สำเร็จ มีข้อผิดพลาดเกิดขึ้นกรุณาลองใหม่อีกครั้ง</div>"; } ?> <table class="table table-striped"> <thead> <tr> <th>#</th> <th>รหัสสินค้า</th> <th>ชื่อสินค้า</th> <th>รายละเอียด</th> <th>ราคา</th> <th> </th> </tr> </thead> <tbody> <?php while ($meResult = mysql_fetch_assoc($meQuery)) { ?> <tr> <td><img src="images/<?php echo $meResult['product_img_name']; ?>" border="0"></td> <td><?php echo $meResult['product_code']; ?></td> <td><?php echo $meResult['product_name']; ?></td> <td><?php echo $meResult['product_desc']; ?></td> <td><?php echo number_format($meResult['product_price'],2); ?></td> <td> <a class="btn btn-primary btn-lg" href="updatecart.php?itemId=<?php echo $meResult['id']; ?>" role="button"> <span class="glyphicon glyphicon-shopping-cart"></span> หยิบใส่ตะกร้า</a> </td> </tr> <?php } ?> </tbody> </table> </div> <!-- /container --> <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> <script src="bootstrap/js/jquery.min.js"></script> <!-- Include all compiled plugins (below), or include individual files as needed --> <script src="bootstrap/js/bootstrap.min.js"></script> </body> </html> <?php mysql_close(); ?> |
ผลลัพธ์จากไฟล์ index.php

4. สร้างไฟล์ cart.php แล้วนำ code ด้านล่างไปใส่ การทำงานของไฟล์นี้เป็นการแสดงรายการสินค้าในตะกร้าโดย session จะเก็บข้อมูล id ของสินค้า แล้วนำมาใช้งานด้วยการดึงข้อมูล MySQL
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 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 |
<?php session_start(); require 'connect.php'; $action = isset($_GET['a']) ? $_GET['a'] : ""; $itemCount = isset($_SESSION['cart']) ? count($_SESSION['cart']) : 0; if (isset($_SESSION['qty'])) { $meQty = 0; foreach ($_SESSION['qty'] as $meItem) { $meQty = $meQty + $meItem; } } else { $meQty = 0; } if (isset($_SESSION['cart']) and $itemCount > 0) { $itemIds = ""; foreach ($_SESSION['cart'] as $itemId) { $itemIds = $itemIds . $itemId . ","; } $inputItems = rtrim($itemIds, ","); $meSql = "SELECT * FROM products WHERE id in ({$inputItems})"; $meQuery = mysql_query($meSql); $meCount = mysql_num_rows($meQuery); } else { $meCount = 0; } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>itoffside.com shopping cart</title> <!-- Bootstrap --> <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet"> <link href="bootstrap/css/nava.css" rel="stylesheet"> <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> <![endif]--> </head> <body> <div class="container"> <!-- Static navbar --> <div class="navbar navbar-default" role="navigation"> <div class="container-fluid"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="#">Shopping Cart - ItOffside.com</a> </div> <div class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li class="active"><a href="index.php">หน้าแรกสินค้า</a></li> <li><a href="cart.php">ตะกร้าสินค้าของฉัน <span class="badge"><?php echo $meQty; ?></span></a></li> </ul> </div><!--/.nav-collapse --> </div><!--/.container-fluid --> </div> <h3>ตะกร้าสินค้าของฉัน</h3> <!-- Main component for a primary marketing message or call to action --> <?php if ($action == 'removed') { echo "<div class=\"alert alert-warning\">ลบสินค้าเรียบร้อยแล้ว</div>"; } if ($meCount == 0) { echo "<div class=\"alert alert-warning\">ไม่มีสินค้าอยู่ในตะกร้า</div>"; } else { ?> <form action="updatecart.php" method="post" name="fromupdate"> <table class="table table-striped table-bordered"> <thead> <tr> <th>#</th> <th>รหัสสินค้า</th> <th>ชื่อสินค้า</th> <th>รายละเอียด</th> <th>จำนวน</th> <th>ราคาต่อหน่วย</th> <th>จำนวนเงิน</th> <th> </th> </tr> </thead> <tbody> <?php $total_price = 0; $num = 0; while ($meResult = mysql_fetch_assoc($meQuery)) { $key = array_search($meResult['id'], $_SESSION['cart']); $total_price = $total_price + ($meResult['product_price'] * $_SESSION['qty'][$key]); ?> <tr> <td><img src="images/<?php echo $meResult['product_img_name']; ?>" border="0"></td> <td><?php echo $meResult['product_code']; ?></td> <td><?php echo $meResult['product_name']; ?></td> <td><?php echo $meResult['product_desc']; ?></td> <td> <input type="text" name="qty[<?php echo $num; ?>]" value="<?php echo $_SESSION['qty'][$key]; ?>" class="form-control" style="width: 60px;text-align: center;"> <input type="hidden" name="arr_key_<?php echo $num; ?>" value="<?php echo $key; ?>"> </td> <td><?php echo number_format($meResult['product_price'],2); ?></td> <td><?php echo number_format(($meResult['product_price'] * $_SESSION['qty'][$key]),2); ?></td> <td> <a class="btn btn-danger btn-lg" href="removecart.php?itemId=<?php echo $meResult['id']; ?>" role="button"> <span class="glyphicon glyphicon-trash"></span> ลบทิ้ง</a> </td> </tr> <?php $num++; } ?> <tr> <td colspan="8" style="text-align: right;"> <h4>จำนวนเงินรวมทั้งหมด <?php echo number_format($total_price,2); ?> บาท</h4> </td> </tr> <tr> <td colspan="8" style="text-align: right;"> <button type="submit" class="btn btn-info btn-lg">คำนวณราคาสินค้าใหม่</button> <a href="order.php" type="button" class="btn btn-primary btn-lg">สังซื้อสินค้า</a> </td> </tr> </tbody> </table> </form> <?php } ?> </div> <!-- /container --> <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> <script src="bootstrap/js/jquery.min.js"></script> <!-- Include all compiled plugins (below), or include individual files as needed --> <script src="bootstrap/js/bootstrap.min.js"></script> </body> </html> <?php mysql_close(); ?></pre> 5. สร้างไฟล์ updatecart.php แล้วนำ code ด้านล่างนี้ไปใส่ ซึ่งการทำงานของไฟล์นี้คือ เมื่อมีการคลิกปุ่ม "หยิบใส่ตะกร้า" ในหน้า index.php และปุ่ม "คำนวณสินค้าใหม่" ในหน้า cart.php ไฟล์นี้จะถูกทำงานทันที เพื่อบันทึกข้อมูล id สินค้า(ใช้ในการอ้างอิงในการดึงข้อมูลจากฐานขัอมูล) หรือเพิ่มจำนวนสินค้าลงในตะกร้า ลงในตัวแปร session <pre class="lang:php decode:true" title="updatecart.php"><?php session_start(); $itemId = isset($_GET['itemId']) ? $_GET['itemId'] : ""; if ($_POST) { for ($i = 0; $i < count($_POST['qty']); $i++) { $key = $_POST['arr_key_' . $i]; $_SESSION['qty'][$key] = $_POST['qty'][$i]; header('location:cart.php'); } } else { if (!isset($_SESSION['cart'])) { $_SESSION['cart'] = array(); $_SESSION['qty'][] = array(); } if (in_array($itemId, $_SESSION['cart'])) { $key = array_search($itemId, $_SESSION['cart']); $_SESSION['qty'][$key] = $_SESSION['qty'][$key] + 1; header('location:index.php?a=exists'); } else { array_push($_SESSION['cart'], $itemId); $key = array_search($itemId, $_SESSION['cart']); $_SESSION['qty'][$key] = 1; header('location:index.php?a=add'); } } ?> |
ผลลัพธ์

6. สร้างไฟล์ removecart.php แล้วนำ code ด้านล่างไปใส่ สำหรับการทำงานไฟล์นี้จะเป็นการลบรายการสินค้าในตะกร้าออกไปจากตัวแปร? session โดยจะลบทิ้งเฉพาะ id ที่เลือกไว้เท่านั้น
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 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 |
<?php session_start(); $itemId = isset($_GET['itemId']) ? $_GET['itemId'] : ""; if (!isset($_SESSION['cart'])) { $_SESSION['cart'] = array(); $_SESSION['qty'][] = array(); } $key = array_search($itemId, $_SESSION['cart']); $_SESSION['qty'][$key] = ""; $_SESSION['cart'] = array_diff($_SESSION['cart'], array($itemId)); header('location:cart.php?a=remove'); ?></pre> 7. สร้างไฟล์ order.php แล้วนำ code ด้านล่างไปใส่ โดยการทำงานของไฟล์นี้จะแสดงผลรายการที่ต้องการยืนยันสั่งซื้อพร้อมจำนวนและราคาสินค้าที่ไม่สามารถแก้ไขได้(แตกต่างจาก cart.php ที่สามารถแก้ไขได้) <pre class="lang:php decode:true" title="order.php"><?php session_start(); require 'connect.php'; $action = isset($_GET['a']) ? $_GET['a'] : ""; $itemCount = isset($_SESSION['cart']) ? count($_SESSION['cart']) : 0; $_SESSION['formid'] = sha1('itoffside.com' . microtime()); if (isset($_SESSION['qty'])) { $meQty = 0; foreach ($_SESSION['qty'] as $meItem) { $meQty = $meQty + $meItem; } } else { $meQty = 0; } if (isset($_SESSION['cart']) and $itemCount > 0) { $itemIds = ""; foreach ($_SESSION['cart'] as $itemId) { $itemIds = $itemIds . $itemId . ","; } $inputItems = rtrim($itemIds, ","); $meSql = "SELECT * FROM products WHERE id in ({$inputItems})"; $meQuery = mysql_query($meSql); $meCount = mysql_num_rows($meQuery); } else { $meCount = 0; } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>itoffside.com shopping cart</title> <!-- Bootstrap --> <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet"> <link href="bootstrap/css/nava.css" rel="stylesheet"> <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> <![endif]--> <script type="text/javascript"> function updateSubmit(){ if(document.formupdate.order_fullname.value == ""){ alert('โปรดใส่ชื่อนามสกุลด้วย!'); document.formupdate.order_fullname.focus(); return false; } if(document.formupdate.order_address.value == ""){ alert('โปรดใส่ที่อยู่ด้วย!'); document.formupdate.order_address.focus(); return false; } if(document.formupdate.order_phone.value == ""){ alert('โปรดใส่เบอร์โทรด้วย!'); document.formupdate.order_phone.focus(); return false; } document.formupdate.submit(); return false; } </script> </head> <body> <div class="container"> <!-- Static navbar --> <div class="navbar navbar-default" role="navigation"> <div class="container-fluid"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="#">Shopping Cart - ItOffside.com</a> </div> <div class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li class="active"><a href="index.php">หน้าแรกสินค้า</a></li> <li><a href="cart.php">ตะกร้าสินค้าของฉัน <span class="badge"><?php echo $meQty; ?></span></a></li> </ul> </div><!--/.nav-collapse --> </div><!--/.container-fluid --> </div> <h3>รายการสั่งซื้อ</h3> <!-- Main component for a primary marketing message or call to action --> <?php if ($action == 'removed') { echo "<div class=\"alert alert-warning\">ลบสินค้าเรียบร้อยแล้ว</div>"; } if ($meCount == 0) { echo "<div class=\"alert alert-warning\">ไม่มีสินค้าอยู่ในตะกร้า</div>"; } else { ?> <form action="updateorder.php" method="post" name="formupdate" role="form" id="formupdate" onsubmit="JavaScript:return updateSubmit();"> <div class="form-group"> <label for="exampleInputEmail1">ชื่อ-นามสกุล</label> <input type="text" class="form-control" id="order_fullname" placeholder="ใส่ชื่อนามสกุล" style="width: 300px;" name="order_fullname"> </div> <div class="form-group"> <label for="exampleInputAddress">ที่อยู่</label> <textarea class="form-control" rows="3" style="width: 500px;" name="order_address" id="order_address"></textarea> </div> <div class="form-group"> <label for="exampleInputPhone">เบอร์โทรศัพท์</label> <input type="text" class="form-control" id="order_phone" placeholder="ใส่เบอร์โทรศัพท์ที่สามารถติดต่อได้" style="width: 300px;" name="order_phone"> </div> <table class="table table-striped table-bordered"> <thead> <tr> <th>รหัสสินค้า</th> <th>ชื่อสินค้า</th> <th>รายละเอียด</th> <th>จำนวน</th> <th>ราคาต่อหน่วย</th> <th>จำนวนเงิน</th> </tr> </thead> <tbody> <?php $total_price = 0; $num = 0; while ($meResult = mysql_fetch_assoc($meQuery)) { $key = array_search($meResult['id'], $_SESSION['cart']); $total_price = $total_price + ($meResult['product_price'] * $_SESSION['qty'][$key]); ?> <tr> <td><?php echo $meResult['product_code']; ?></td> <td><?php echo $meResult['product_name']; ?></td> <td><?php echo $meResult['product_desc']; ?></td> <td> <?php echo $_SESSION['qty'][$key]; ?> <input type="hidden" name="qty[]" value="<?php echo $_SESSION['qty'][$key]; ?>" /> <input type="hidden" name="product_id[]" value="<?php echo $meResult['id']; ?>" /> <input type="hidden" name="product_price[]" value="<?php echo $meResult['product_price']; ?>" /> </td> <td><?php echo number_format($meResult['product_price'], 2); ?></td> <td><?php echo number_format(($meResult['product_price'] * $_SESSION['qty'][$key]), 2); ?></td> </tr> <?php $num++; } ?> <tr> <td colspan="8" style="text-align: right;"> <h4>จำนวนเงินรวมทั้งหมด <?php echo number_format($total_price, 2); ?> บาท</h4> </td> </tr> <tr> <td colspan="8" style="text-align: right;"> <input type="hidden" name="formid" value="<?php echo $_SESSION['formid']; ?>"/> <a href="cart.php" type="button" class="btn btn-danger btn-lg">ย้อนกลับ</a> <button type="submit" class="btn btn-primary btn-lg">บันทึกการสั่งซื้อสินค้า</button> </td> </tr> </tbody> </table> </form> <?php } ?> </div> <!-- /container --> <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> <script src="bootstrap/js/jquery.min.js"></script> <!-- Include all compiled plugins (below), or include individual files as needed --> <script src="bootstrap/js/bootstrap.min.js"></script> </body> </html> <?php mysql_close(); ?> |
ผลลัพธ์

8. สร้างไฟล์ updateorder.php แล้วนำ code ด้านล่างนี้ไปใส่ จากตัวอย่าง code การทำงานของ code นี้คือจะบันทึกข้อมูลการสั่งซื้อสินค้าและผู้สั่งซื้อสินค้าจากฟอร์ม order.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 |
<?php session_start(); $formid = isset($_SESSION['formid']) ? $_SESSION['formid'] : ""; if ($formid != $_POST['formid']) { echo "E00001!! SESSION ERROR RETRY AGAINT."; } else { unset($_SESSION['formid']); if ($_POST) { require 'connect.php'; $order_fullname = mysql_real_escape_string($_POST['order_fullname']); $order_address = mysql_real_escape_string($_POST['order_address']); $order_phone = mysql_real_escape_string($_POST['order_phone']); $meSql = "INSERT INTO orders (order_date, order_fullname, order_address, order_phone) VALUES (NOW(),'{$order_fullname}','{$order_address}','{$order_phone}') "; $meQeury = mysql_query($meSql); if ($meQeury) { $order_id = mysql_insert_id(); for ($i = 0; $i < count($_POST['qty']); $i++) { $order_detail_quantity = mysql_real_escape_string($_POST['qty'][$i]); $order_detail_price = mysql_real_escape_string($_POST['product_price'][$i]); $product_id = mysql_real_escape_string($_POST['product_id'][$i]); $lineSql = "INSERT INTO order_details (order_detail_quantity, order_detail_price, product_id, order_id) "; $lineSql .= "VALUES ("; $lineSql .= "'{$order_detail_quantity}',"; $lineSql .= "'{$order_detail_price}',"; $lineSql .= "'{$product_id}',"; $lineSql .= "'{$order_id}'"; $lineSql .= ") "; mysql_query($lineSql); } mysql_close(); unset($_SESSION['cart']); unset($_SESSION['qty']); header('location:index.php?a=order'); }else{ mysql_close(); header('location:index.php?a=orderfail'); } } } ?> |
เสร็จแล้วสำหรับระบบตะกร้าสั่งซื้อสินค้าโดยใช้ฟังก์ชั่น Session และ Array แบบง่ายๆผู้อ่านสามารถดาวน์โหลด Source Code ได้ที่ลิงค์ด้านล่างนี้เลยครับ
[sociallocker]
<a title=”ดาวน์โหลดระบบตะกร้าสั่งซื้อสินค้า” href=”http://www.mediafire.com/download/heagbrrad3fricl/shopping_cart.rar” target=”_blank” rel=”noopener noreferrer”>ดาวน์โหลดไฟล์ระบบตะกร้าสั่งซื้อสินค้า!</a>รหัสแตกไฟล์ rar = www.itoffside.com
[/sociallocker]
สวัสดีครับผมอยากถามหน่อยครับคือผมได้นำโค้ดที่ท่านได้เขียนไว้มาลองใช้ดูครับระบบใช้งานได้ดีครับ
แต่อยากรู้ว่าข้อมูลการสั่งซื้อเราจะทำไงครับ เราจะดึงขึ้นมาโชว์ที่หน้าเว็บหรือเราจะสั่งให้ส่งคำสั่งซื้อมาทางเมล์เราได้ไหมครับ ขอบคุณล้วงหน้าครับท่าน
1. การที่จะดึงข้อมูลสั่งซื้อมาโชว์ในหน้าเว็บ เราสามารถดึงจากตาราง orders และ order_details ซึ่งเราจะทราบชื่อสินค้าและชื่อผู้สั่งซื้อจาก id สินค้า/ ข้อมูลชื่อผู้สั่งซื้อ ในบทความนี้ผมไม่ได้เขียนไว้เพิ่มเติม แต่สามารถนำไปประยุกต์ใช้ได้
2. ส่งอีเมล์ตอนสั่งซื้อก็เขียนโปรแกรมเพิ่มในไฟล์ updateorder.php โดยอาจจะใช้ library phpmailer ช่วย
การที่จะดึงข้อมูลสั่งซื้อมาโชว์ในหน้าเว็บ ทำไมมันโชว์ทุกรายการเลยครับ ผมต้องทำไงครับ
อยากได้ระบบจัดการข้อมูลสินค้าค่ะ
สวัสดีค่ะ เพิ่งเข้ามาอ่านบทความนี้เป็นครั้งแรก เขียนเข้าใจง่ายค่ะ กำลังเริ่มศึกษาการพัฒนาระบบด้วย PHP ระบบตะกร้าสินค้าค่ะ ดาวน์โหลดไฟล์ตะกร้าสั่งซื้อสินค้ามา พอแตกไฟล์ ถามหารหัสผ่าน ไม่ทราบว่าดูได้จากไหนคะ รบกวนขอความอนุเคราะห์ด้วยนะคะ
รหัสแตกไฟล์ http://www.itoffside.com
แล้วก็ยังหาดอีกไฟล์ครับ คือไฟล์อัพโหลดข้อมูลลงฐานข้อมูลครับท่าน ขอหน่อยได้ไหม
script sql ฐานข้อมูลด้านบนสุดเลยครับ
ขอบคุณมากค่ะ มีประโยชน์มากเลย^^
script sql ฐานข้อมูลด้านบนสุดเลยครับ ++ตอบครับ+++ ผมสร้างแล้ว แต่ที่ผมอยากได้คือ script อัพข้อมูลเป็นพวกรูปสินค้า ระหัส รายละเอียดสินค้า ลงฐานข้อมูลไงครับ คือเราต้องลงสินค้าไว้ในฐานข้อมูลก่อน ค่อยถึงขึ้นมาแสดงนิครับ ถ้าผมถามผิดหรือยังไงก็ ขอโทษท่านด้วยครับผม มือใหม่ครับ แต่ผมลองทำดูจากวิธีที่ผมรู้มาแล้วสามารถ insert ไฟล์ลงฐานข้อได้แต่ที่หน้า index ทำไม่มันไม่แสดงรูปสินค้าที่ผมได้ insert ลงไปฐานข้อมูลอะครับ ผมอยากติอต่อท่านได้จังครับไม่รู้ว่าจะขอเบอร์ได้ไหมครับ
คุณต้องเขียนโปรแกรม เพิ่มสินค้าเพิ่มเติม ครับ โดยเพิ่มไปตาราง products โดยรูปภาพนั้น เราเก็บบันทึกเฉพาะ ชื่อรูปภาพลงไปในฟิล์ด product_img_name ส่วนรูปให้ upload ไปไว้ในโฟล์เดอร์ images และตอนแสดงออกมาให้อ้างอิงพาธ เฉยๆ
*บทความนี้เป็นเรื่องเกี่ยวกับการทำระบบตะกร้า ครับ อาจจะไม่ครอบคลุมกับการบันทึกสินค้า แต่สามารถเอาไปต่อยอดได้
อ๋อครับ นี้แสดงว่ารูปสินค้าไม่ได้ดึงมาจากฐานข้อมูลหรอครับ แต่ผมลองทำ insert ไฟล์ลงฐานข้อมูลแล้วเลยกับมาหน้าดูที่หน้าแรก มิน่าไม่โชว์ครับ แล้วระบบที่ท่านเขียนไว้ท่านสั่งให้ โชว์ข้อมูลสินค้ากี่รายการต่อหน้าครับ
ผมไม่ได้แบ่งหน้าครับ
ท่านพอว่างไหมครับ ท่านเขียนโปรแกรม เพิ่มสินค้าให้ผมหน่อยได้ไหมครับผมชอบระบบนี้มากเลยเราสั่งซื้อสินค้าได้โดยไม่ต้องสมัครสมาชิกเลย
ผมว่างผมจะเขียนบทความเพิ่มครับ 🙂
ขอบพระคุณนะครับท่าน พอดีผมมือใหม่ครับกำลังศึกษาการพัฒนาเว็บครับ ขอเรียก อาจารย์ละกันครับ ผมเข้ามาที่นี้ก็เพราะหาความรูู้ท่านก็เป็นคนเขียนบทความก็เท่ากับอาจารย์นะครับ
สวัสดีครับท่านไม่รู้ว่าบทความเสร็จหรือยังครับ ผมรอดูอยู่ครับท่าน
ใจเย็นๆครับ ถ้าผมเขียนบทความเสร็จแล้ว ผมจะแจ้งเมล์ให้คุณเลยครับ
ขอบพระคุณท่านอาจารย์ครับ รออยู่ครับ
เท่าที่ผมได้หามาไม่มีใครเขียนบทความอ่านแล้วเข้าใจเหมือนท่านเขียนเลยครับ
ทำใมหน้า cart.php ไม่ขึ้นสินค้าให้ มันบอกว่า ไม่มีสินค้า ทั้ง ๆ ที่กดเพิ่มแล้ว (ผมทำไม่เป็นอะคับ แก้ไม่เป็น พึ่งหัดลองศึกษาอยู่ ช่วยบอกจุดผิดทีคับ ขอบคุณคับ)
copy code ทุกบรรทัดจากผมเปล่า ครับ?
ขอบคุณมากครับ ได้ความรู้เพิ่มมากเลยครับ
ขอบคุณครั้บ
ทำการ drump ใส่ sql ไม่ได้ครั้บ
คุณสร้างฐานข้อมูลก่อนแล้วค่อย drump ครับ
ลองทำตามแล้วได้ error แบบนี้อ่ะครับ ไม่ทราบว่าเกิดจากอะไร ??
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\shopping_cart\order.php on line 24
ตรวจสอบ ไฟล์ order.php บรรทัด 22-23 ว่าใส่ถูกต้องตามตัวอย่างเปล่าครับ
ถ้าทำเป็นระบบสมาชิก ต้องทำยังไงค่ะ
ตอนแรกก็ทำตามระบบ นี้ก่อน http://www.itoffside.com/php-workshop-member-system/
พอทำเสร็จก็ เช็คตอนสั่ง order (order.php) หากมี Session สมาชิกก็สามารถสั่งได้แต่ถ้าหากว่าไม่มีให้ Redirect เข้าหน้า login.php ก่อน ครับ
ลองศึกษาดูครับ
แล้ว ใช้ code Shopping cart นี้ได้ใช้มั้ยค่ะ
อยากทราบว่า id ที่กำหนดไว้ในตารางทั้ง 3 นี่เป็น primary key ตัวเดียวกันหรือ ป่าวค่ะ หรือ คนละตัวแต่ใช้ชื่อซ้ำกันได้
คนละ ตัวครับ primary key ของแต่ละตารางไม่มีส่วนมาเกี่ยวกับตารางอื่นๆ
ส่วน การใช้ชื่อซ้ำกัน ผมยังไม่เข้าใจคำถาม
พี่ครับผมลองทำแล้วหน้าตะกร้าสินค้ามันไม่แสดง ค่าตัวแปรส่งมาอยู่นะครับ
มีข้อความ Error อะไรไหมครับ
ถ้าอยากเปลี่ยนสีของแถว เปลี่ยนตรงไหนคะ ดูในcss ทั้งสองไฟล์จนตาลายแล้วคะ
รบกวนด้วยนะคะ ขอบคุณค่ะ
ผมใช้ Css Framework ครับ Bootstrap ถ้าหากคุณต้องการเปลี่ยน สี ดูได้จาก http://getbootstrap.com/css/#tables
หรือ ติดตั้ง Add on Firebug แล้วจิ้มดู ว่า Css สีตารางอยู่บรรทัดไหนแล้วค่อยแก้นะครับ
ขอบคุณครับ
ถ้าเปลี่ยนสีปุ่มพวกหยิบสินค้าลงตะกร้า ลบทิ้ง ต้องทำยังไงคะ
ลองอ่าน http://getbootstrap.com/css/#buttons ครับ หากไม่เข้าใจ ถามใหม่ครับ
ตอนนี้แก้สีตารางได้แล้วค่ะ ขอบคุณนะคะ ^^
เวลาเข้าไปดูเว็บผ่านโทรศัพท์แล้วมันไม่อยู่ตรงกลางให้ค่ะ อยู่ชิดขวาหมด แต่ดูในคอมอยู่ตรงกลาง ต้องแก้ยังไงคะ
ลองอ่านบทความนี้ ครับ http://getbootstrap.com/css/#responsive-utilities
Parse error: syntax error, unexpected T_STRING in C:\AppServ\www\shopping_cart\index.php on line 3
มันขึ้นอย่างนี้อ่ะคะ ไม่ทราบว่าต้องแก้ไขยังไงคะ
บรรทัด 3 ไฟล์ index.php ทดสอบแก้
require(“connect.php”);
หากไม่หายให้น้องอัพเกรดเวอร์ชั่น PHP ครับตอนนี้เป็นเวอร์ชั่น 5.4-5.5 แล้วครับ หรือถอน Appserv ลง Xampp แทน
สุดยอดครับ ขอบคุณครับ….
🙂
ขอโทษน่ะค่ะรบกวนถามตอนเรากดบันทึกและสั่งซื้อน่ะค่ะมันสั่งซื้อไม่ได้ จะขึ้นข้อความ “สั่งซื้อสินค้าไม่สำเร็จ มีข้อผิดพลาดเกิดขึ้นกรุณาลองใหม่อีกครั้ง” นะค่ะไม่ทราบว่าเป็นเพราะอะไรค่ะ ขอบคุณค่ะ
กรอกชื่อ นามสกุล ที่อยู่ให้ครบแล้วลองกดสั่งซื้อใหม่ครับ
ลองแล้วค่ะแต่ก็ยังสั่งซื้อไม่ได้ค่ะ
error จากการ query ตอน insert table orders ลองตรวจสอบ code และฐานข้อมูล อีกรอบหากไม่ได้ เดี่ยวผม รีโมทแก้ไขให้ครับ
รบกวนแก้ไฟล์ updateorder ที่ fullname ด้วยครับ เพราะ ฟิลด์ในฐานข้อมูล คือ fulltime ทำให้ insert ไม่เข้า เผื่อเพื่อนๆคนอื่นๆ หาจุดแก้ไขไม่เจอ
ใช้งานง่ายมากเลยครับระบบนี้
ตอนนี้ผมเอามาใช้งานจริงเลยครับ
อยากสอบถามว่า ผมจะเอา PHPMailer โค็ดไปใส่ส่วนไหนของหน้า updateorder.php ครับ
พอดีผมไปโหลดโค็ดนี่มาครับผม
<?php
if ( !defined('VERSION') && !$_POST ) {
// this code will eliminate anyone attempting to load this script from the
// browser address bar … allowing that would be a security threat
echo "Sorry, cannot process ….”;
exit();
}
/* PHPMailer-FE SETTINGS – these variables are in order of appearance in PHPMailer-FE, value is default */
/* to use these, uncomment the variable (the double slashes at the front) and add your own settings after the equal sign */
$_POST[‘recipient’] = ‘andy@worxteam.com’;
//$_POST[‘cc’] = ‘name1@worxteam.com,name2@worxteam.com’;
//$_POST[‘bcc’] = ‘name3@worxteam.com,name4@worxteam.com’;
//$_POST[’email_bad_array’] = “\r|\n|to:|cc:|bcc:”;
$_POST[‘subject’] = ‘Form Submission’ . ‘ from: ‘ . $_SERVER[‘HTTP_HOST’];
//$_POST[‘useWorxTuring’] = false;
//$_POST[‘PHPMailerLocation’] = ‘class.phpmailer.php’;
//$_POST[‘redirectOnBan’] = ‘http://’ . $_SERVER[‘HTTP_HOST’];
//$_POST[‘allowedFileTypes’] = ‘doc|docx|xls|xlsx|pdf|jpg|jpeg|png|gif|zip|rar|gz’;
//$_POST[‘replyEmailOnFail’] = ‘_tpl/replyemailfailed.html’;
//$_POST[‘subjectEmailOnFail’] = ‘Email Submission failed’;
//$_POST[‘replyEmailOnSuccess’] = ‘_tpl/replyemailsuccess.html’;
//$_POST[‘subjectEmailOnSuccess’] = ‘Email Submission succeeded’;
$_POST[‘redirectOnFail’] = ‘_tpl/error.html’;
//$_POST[‘useAsAutoResponder’] = true; // default is false – true disables $recipient receiving form value email
//$_POST[‘attach_local_name’] = ‘/path/to/document.pdf’;
//$_POST[‘attach_local_type’] = ‘application/pdf’;
//$_POST[‘reserved_key_words’] = ‘keyword1,keyword2,keyword3’;
//$_POST[‘text_only’] = false; //default is false, set to true to send Text only emails if using class.phpmailer.php
/* Variables normally passed in the form – NO DEFAULTS ASSOCIATES WITH THESE, EXAMPLES ONLY */
//$_POST[‘redirect’] = ‘_tpl/thankyou.html’;
//$_POST[‘required’] = ‘frmFirstname,frmLastname,email’;
//$_POST[‘sort’] = ‘alphabetic’;
$_POST[‘print_blank_fields’] = ‘1’; // or true;
//$_POST[‘title’] = ‘Feedback Form Results’;
//$_POST[‘return_link_url’] = ‘http://yourdomain.com/main.html’;
//$_POST[‘return_link_title’] = ‘Back to Main Page’;
//$_POST[‘missing_fields_redirect’] = ‘http://yourdomain.com/error.html’;
//$_POST[‘background’] = ‘http://www.yourdomain.com/imgs/image.gif’;
//$_POST[‘bgcolor’] = ‘#FFFFFF’;
//$_POST[‘text_color’] = ‘#000000’;
//$_POST[‘link_color’] = ‘#FF0000’;
//$_POST[‘vlink_color’] = ‘#0000FF’;
//$_POST[‘alink_color’] = ‘#0000FF’;
//$_POST[‘flash_sent’] = ‘sent=OK’; // USED AS THE RETURN CODE FOR FLASH FORMS
//$_POST[‘fixedFromEmail’] = ”; //’webmaster@thisdomain.com’;
//$_POST[‘fixedFromName’] = ”; //’Webmaster’;
ขออภัยทุกท่านด้วยครับ ผมเขียน php ไม่เป็น ขอบคุณทุกท่านที่ตอบครับผม
แทรกไว้ในบรรทัดที่ 17 เลย
ข้างล่าง if ($meQeury) {
ขอบคุณครับ
ผมแทรกแบบนี้ครับ
……..
if ($meQeury) {
require_once’formmail.php’; // ส่งค่าฟอร์ม
$order_id = mysql_insert_id();
………..
ผลที่ได้คือเมลเข้า แต่ภาษาดันเป็นต่างดาว ปวดใจจิงๆ ครับ
พี่คับถามหน่อยคับ ระบบตะกร้าสินค้า ถ้าจะเปลี่ยนจากที่สินค้าไปด้านให้ สินค้าไปด้านข้างแทนเหมือนหลายๆเว็บทำไงหรอคับ
ย้ายไปอยู่ด้านข้างใช้ html+css ครับ
ยังไงคับไม่เข้าใจ
รูปแบบหน้าจอ ด้านบนด้านข้าง ไม่มีผลเกี่ยวกับ code ครับคุณ copy code ด้านบน มาวางด้าน ข้างโดย ส่วนที่เปลี่ยนคือ html, css ครับ ที่ต้องเปลี่ยน
ผมหมายถึงตัวสินค้าอะคับ ให้ไปด้านข้างแทน
ให้มันเลียงไปด่านข้าง บัดทัดละ 4 ชิ้น
จากตัวอย่างผมใช้ table นะ คุณก็เปลี่ยนไปใช้ Div ครับ โดยใช้ CSS ควบคุมการแสดงผล ลองศึกษา html+css ครับ
มีตัวอย่าง การจ่ายเงิน หรือ การชำระเงินไหมครับ ต่อยอดจากอันนี้
ระบบผู้ใช้แจ้งชำระเงิน ยังไม่มีครับ
พี่ค่ะทำไมรหัสแตกไฟล์ใช้ไม่ด้ายละค่ะ
รหัส http://www.itoffside.com
ข้อ 2 ไม่เห็นมีให้โหลดอะครับ
ด้านล่างบทความครับ
ดาวโหลดและคัดลอกโฟล์เดอร์ Bootstrap และโฟล์เดอร์ images มาแล้วค่ะ
แต่มันวางไม่ได้ มันเข้ารหัส รหัสคืออะไรค้ะ??
http://www.itoffside.com
ทำใมหน้า cart.php ไม่ขึ้นสินค้าให้ มันบอกว่า ไม่มีสินค้า ทั้ง ๆ ที่กดเพิ่มแล้ว (แก้ไม่เป็น พึ่งหัดลองศึกษาอยู่ ช่วยบอกจุดผิดทีค้ะ ขอบคุณค้ะ)
ป.ล. ก็อปทุกโค้ดเหมือนทุกบรรทัด มันบอก Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\test\cart.php on line 28 อ้ะค้ะ
ติดตั้ง xampp แทน Appserv
ขอบคุณมากค้าาาาาาาา
จากที่ดูศึกษาเล่นๆอ่านคอมเม้นไปๆมาๆ….ผมนี่อึ้งเลยครับ..admin เว็บนี้ตอบใวมาก ทุกคำถาม..มีคำตอบหมด?..? สุดยอดครับนับถือเลย(ส่วนมากที่อ่านมาจะร้างๆไปหมดและ) อันนี้ค่อนข้างจะปัจจุบันดีน่าสนใจ น่าติดตามมากครับ ^^
ขอบคุณครับ ที่ ชมผมจะเก็บไว้พัฒนาและเขียนบทความต่อไปครับ
ขออนุญาติสอบถามหน่อยครับ
พอดีผมได้นำเอา source code ของท่านไปดัดแปลงครับ ให้เข้ากับการทำงานในหน่วยงานของผม
เรื่องมันมีมีอยู่ว่า หลังจากที่เราเลือกรายการสินค้า เข้าตะกร้าแล้ว เมื่อเราเข้าไปตรวจสอบในตะกร้า กลายเป็นว่ารายการที่เราเลือกไม่เป็นลำดับก่อนหลังตามที่เลือก ผมได้ตรวจสอบจาก source code แล้วน่าจะมาจากตอนที่ select ข้อมูลมา โดยที่ where in () ครับ ไม่ทราบว่าพอจะมีวิธีแก้ไข ที่จะให้รายการที่เราเลือก เป็นไปตามลำดับตามที่เราเลือกได้มั้ยครับ เพราะเช็คจาก array แล้ว ลำดับก่อน-หลัง ตรงตามที่เลือกครับ แต่หน้าแสดงตะกร้า กลับไม่ตรง…
สินค้าที่อยู่ในตะกร้า เรา นำมาจาก database ซึ่ง ระบบนี้ไม่สามารถเรียงตาม ที่ เพิ่มในตะกร้าได้ครับ
หน้า Cart มีแจ้งเตือนแบบนี้ แก้ไขยังไงคะ
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\1\cart\cart.php on line 28
ขอบคุณล่วงหน้าค่ะ
ติดตั้ง XAMPP แทน Appserv
$itemCount เอาไว้ทำอะไรหรอครับ ไม่เข้าใจความหมายของตัวนี้
ขอถามอีกข้อนะครับ พอดีว่าผมต้องการนำไปประยุกต์ใช้กับงาน โดยที่ผมใช้ appserv เป็นsever แต่จากที่อ่านcomment คือต้องใช้ xampp ด้วยเหตุผลอะไรหรอครับ คำสั่ง? พอมีวิธีที่จะไม่ต้องเปลี่ยนได้ไหมครับ ถ้ายังไงก็ต้องเปลี่ยน งานที่ทำไว้จะมีผลกระทบไหมครับ เช่นคำสั่งเปลี่ยน ต้องเปลี่ยนคำสั่งเดิมไปใช้ xampp ขอบคุณมากครับ
สุดยอดไปเลยครับ โหลด source code มาปุ๊บ เปลี่ยน user/pass ของ database แล้วก็ใช้งานได้เลย
ขอบคุณครับ
พี่ครับผมขอถามหน่อยครับ ผมเปลี่ยนฐานข้อมูล(product)สินค้าแล้วพอกดหยิบใส่ตระกร้า
ลิ้งหน้าตระกร้าสินค้าของฉัน มันก้อเพิ่ม แต่พอกดเข้าไปดูมันบอก”ไม่มีสินค้าในตะกร้า”อะครับแล้วผมต้องไปแก้ตรงไหนหรอครับ
ตรวจสอบ session start ครับ
การที่จะดึงข้อมูลสั่งซื้อมาโชว์ในหน้าเว็บ ทำไมมันโชว์ทุกรายการเลยครับ ผมต้องทำไงครับ
ต้องสร้างระบบสมาชิก แล้วตอนที่ สมาชิกล๊อกอินเข้ามาให้แสดงรายการที่สมาชิกสั่งซื้อแทน
อาจารย์ครับ มีโค้ดตัดสต๊อกเพิ่มไหมครับ (ถ้าไม่มีผมรบกวนอาจารย์เขียนให้ดูด้วยครับ)ตอนนี้ผมเพิ่ม ฟิลล์ จำนวนสินค้าใน เทเบิลสินค้าแล้วครับ ขอขอบคุณอาจารย์มากครับ
ถ้าเรา มีสินค้า 100 อยากให้แบ่งเป็นหน้าละ 20 รายการ ต้องแก้ไขเพิ่มเติมตรงไหนครับผม
pagination ครับ
อยากทราบเหมือนกันค่ะ รบกวนด้วยนะคะ
pagination ต้องทำยังไงค่ะ?
สำหรับคนที่อยาก อัพ product เพิ่ม ให้ทำดังนี้นะครับ
1. สร้าง insertproduct.php มา 1 หน้า
2 สร้าง img-upload.inc มา 1 หน้า ( สร้างหน้าเปล่าๆนี่แหละครับ แล้วเซพเป็น .inc)
ขั้นตอนต่อไป นำ code นี้ไว้ใน insertproduct.php แล้วก็saveซะ
Untitled Document
<form action="” method=”post” enctype=”multipart/form-data” name=”form1″>
Id:
Product_code:
Product_name:
Product_desc:
Product_img_name:
Product_price:
//////////////////////////////////////////////////////////////////////////////////////////////////////
ขั้นตอนต่อมา นำ code นี้ไปไว้ใน img-upload.inc แล้วก็ save เหมือนกัน
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
วางทั้ง 2 หน้านี้ไว้ ใน โฟล์เดอร์เดียวกันกับ index.php นั้นแหละครับ
ข้อสำคัญ โฟล์เดอร์ที่ใช้เก็บรูปของท่านต้องตั้งชื่อว่า images นะครับ และที่สำคัญท่านต้องไม่เปลี่ยนแปลง ชื่อ database และตาราง ข้างต้นด้วยนะครับ พอจะอัพสินค้า ก็เรียกหน้า insertproduct.php มาใช้งานครับผม
ข้ออภัย code มันไม่ขึ้นให้ครับ วันหลังจะอัพเป็นไฟล์ให้ก็แล้วกันนะครับ
กำลังจะหาวิธีเพิ่มหน้าสินค้าพอดี ยังไงรบกวนด้วยนะคะ
//
//
//
//
//
//
// Untitled Document
//
//
//
// <form action="” method=”post” enctype=”multipart/form-data” name=”form1″>
//
//
// Id:
//
//
//
// Product_code:
//
//
//
// Product_name:
//
//
//
// Product_desc:
//
//
//
// Product_img_name:
//
//
//
//
//
// Product_price:
//
//
//
//
//
//
//
//
//
//
//
//
//
//อันนี้เอาไว้ใน insertproduct.php ครับ
ผมอัพให้ก็แล้วกัน ทั้งสองตัวครับ ลองไปใช้ดู
http://www.drop4shared.com//ad4b77e7
link โหลด
ขอทราบรายละเอียดเรื่องไฟล์ insertproduct ว่าผมต้องเปลี่ยนตรงใหนบ้าง…บอดีลองทำแล้วมัน ERROR
คือว่า พอกดบันทึกการซื้อสินค้า แล้วมันขึ้นว่าเกิดข้อผิดพลาดต้องแก้ครงไหนหรอคะ ?
บทความนี้ไม่มีการ insert ครับ error ยังไงลองเอาภาพมาให้ดูหน่อยครับ
อยากทราบว่าถ้าจะสร้างสินค้าเป็นหมวดหมู่ แล้วสร้างเป็นหลายหน้า ต้องเพิ่มหน้ายังไงค่ะ
ไม่ขึ้นเหมือนเดิม
คืออะไรไม่ขึ้นเหมือนเดิมครับ
อ้อ โค๊ดเพิ่มสินค้าครับ พอดีเห็นมีหลายคนอยากได้ ผมลองทำแล้วพอใช้ได้เลยเอามาแบ่งให้ครับ
เผอิญว่า ผมโพส เป็น php ในบอร์ดแล้วมันไม่ขึ้นให้ครับ คือมองไม่เห็น เลยทำหน้า php มาให้โหลดไปวางกันเลย ใช้กับโค๊ดที่ท่านทำมาได้ครับเป็นตัวอัพสินค้าเพิ่ม
mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in มันขึ้นcode แบบนี้อ่ะครับ แก้ยังไงครับ
ตรวจสอบคำสั่ง sql ครับ
ตอนหยิบสินค้าเราสามารถระบุจำนวนที่มากกว่า 1 ได้ไหมครับ ขอคำแนะนำด้วยครับ
ต้องเขียนเพิ่มเติมครับ
ขอรบกวนถามนะครับพี่ คือผมทำการสั่งเรียบร้อยแล้ว ผมอยากเอารายการที่สั่งมาโชว์ เพื่อที่จะทำเป็นในเสร็จอะครับ ต้องทำยังไง
เก็บรายการที่สั่งซื้อไว้ในฐานข้อมูลครับ