|
|
|
ขออนุญาติสอบถามการ ตัดสต๊อคสินค้า โดยใช้ พารามิเตอร์ครับ |
|
|
|
|
|
|
|
สวัสดีครับ ขออนุญาติสอบถามการ ตัดสต๊อคสินค้า โดยใช้ พารามิเตอร์ครับ
พอดีผมค่อนข้างสับสนในการใช้พารามิเตอร์ครับ
ผมอยากจะให้ระบบสามารถตัดจำนวนสินค้าในสต๊อกตามยอดที่มีลูกค้าสั่งซื้อน่ะครับ
ได้ออกแบบดาต้าเบสไว้
lotto_product :
product_id เก็บรหัสสินค้า
product_name เก็บชื่อสินค้า
product_detail รายละเอียดสินค้า
product_price เก็บราคาสินค้า
product_group เก็บหมวดหมู่สินค้า
thumbmail เก็บรูปภาพ
item เก็บจำนวนสินค้าในสต๊อก
lotto_orderdetail :
detail_id เก็บอ้างอิงรหัสใบสั่งซื้อ
order_id เก็บอ้างอิงรายการสั่งซื้อสินค้า
product_id เก็บอ้างอิงรหัสสินค้า
product_qty เก็บจำนวนสินค้าที่ซื้อ
total เก็บราคาสินค้า
หน้า cart .php จะเป็นการแสดงสินค้าในตระกร้าเเละมีจำนวนสินค้า สามารถเพิ่มได้ลดได้ครับ
cart .php
Code (PHP)
<div class="container cart">
<?php
// if (!isset($_SESSION['is_member'])) {
// header("Location: module.php?module=member&file=login");
// }
error_reporting( error_reporting() & ~E_NOTICE );
$p_id = $_REQUEST['product_id'];//รับการเรียกของ id
$act = $_REQUEST['act'];//รับการเรียกของ act
if($act=='add' && !empty($p_id)) {
if(!isset($_SESSION['shopping_cart']))
{
$_SESSION['shopping_cart']=array();
}else{
}
if(isset($_SESSION['shopping_cart'][$p_id])) {
$_SESSION['shopping_cart'][$p_id]++;
}else {
$_SESSION['shopping_cart'][$p_id]=1;
}
}
if($act=='remove' && !empty($p_id)) //ยกเลิกการสั่งซื้อ
{
unset($_SESSION['shopping_cart'][$p_id]);
}
if($act=='update') { //อัพเดตร
$amount_array = $_POST['amount'];
foreach($amount_array as $p_id=>$amount) {
$_SESSION['shopping_cart'][$p_id]=$amount;
}
}
//ยกเลิกตะกร้าสินค้า
if ($act == 'Cancel-Cart') {//ถ้า $act เท่ากับ Cancel-Cart ให้ทำการ unset ค่าSESSION ของ shopping_cart
unset($_SESSION['shopping_cart']);
}
print_r($_SESSION);
echo "<Br>" . $_REQUEST['product_id'];
echo "<Br>" . $act;
?>
<div class="row mt">
<!-- &product_id=$row_showproduct[id] -->
<div class="col-lg-12">
<div class="content-panel">
<h4><i class="fa fa-angle-right"></i> ตะกร้าสินค้า</h4>
<section id="no-more-tables">
<form id="frmcart" class="frmcart" action="module.php?module=order&file=cart&act=update" name="frmcart" method="post">
<table class="table table-bordered table-striped table-condensed cf">
<thead class="cf">
<tr>
<th class="numeric">No.</th>
<th class="numeric">สินค้า</th>
<th class="numeric">ราคา</th>
<th class="numeric">จำนวน</th>
<th class="numeric">รวมรายการ</th>
<th class="numeric">ลบ</th>
</tr>
</thead>
<tbody>
<?php
if (!empty($_SESSION['shopping_cart'])) {
foreach ($_SESSION['shopping_cart'] as $p_id=>$p_qty) {
$query = "SELECT * FROM lotto_product WHERE product_id = '$p_id' ";
$result = mysqli_query($conn,$query);
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { //while loop
$sum = $row['product_price'] * $p_qty; //ราคาคูณด้วยจำนวน
$total += $sum; //บวกเพิ่มค่าทีละ 1
?>
<tr>
<td class="numeric" data-title="No."><?php echo $i += 1;?></td>
<td class="numeric" data-title="สินค้า"><?php echo $row['product_name']; ?></td>
<td class="numeric" data-title="Price"><?php echo number_format($row['product_price'],2);?></td>
<td class="numeric" data-title="Numitem"><input type="text" name="<?php echo amount[$p_id];?>" value="<?php echo $p_qty;?>"></td>
<td class="numeric" data-title="Allitem"><?php echo number_format($sum,2); ?></td>
<td class="numeric" data-title="Delete"><a href="module.php?module=order&file=cart&product_id=<?php echo $row['product_id'];?>&act=remove" class="btn btn-danger"><i class="fa fa-trash-o "></i></a></td>
</tr>
<?php
echo $row['product_name'];
}
}
?>
</tbody>
<tr bgcolor="#fff">
<td class="numeric" colspan="5" align="right">Total</td>
<td class="numeric" align='right' data-title="Allprice"><?php echo number_format($total,2); ?></td>
</tr>
<?php
}
?>
<tr>
<td class="numeric" bgcolor="#fff" colspan="5" align="right" style="border: none;">
<a href="module.php?module=order&file=cart&act=Cancel-Cart" class="btn btn-danger"> ยกเลิกตะกร้าสินค้า </a>
<!-- cart.php?act=Cancel-Cart -->
<button type="submit" name="button" id="button" class="btn btn-warning"> คำนวณราคาใหม่ </button>
<button type="button" name="Submit2" onclick="window.location='module.php?module=order&file=confirm';" class="btn btn-primary">สั่งซื้อ </button>
</td>
</tr>
<p align="center"> <a href="module.php?module=page&file=shop" class="btn btn-primary">กลับไปเลือกสินค้า</a> </p>
</table>
</form>
<!-- <div class="button-cart" align="right">
<button type="submit" name="button" id="button" class="btn btn-warning"> คำนวณราคาใหม่ </button>
<button type="button" name="Submit2" onclick="window.location='confirm.php';" class="btn btn-primary">สั่งซื้อ </button>
</div> -->
</section>
</div><!-- /content-panel -->
</div><!-- /col-lg-12 -->
</div><!-- /row -->
</div>
หน้าบันทึกการสั่งซื้อ saveorder.php
Code (PHP)
<?php
// error_reporting( error_reporting() & ~E_NOTICE );
error_reporting(0);
//check
echo "<pre>";
print_r($_SESSION);
echo "<hr>";
print_r($_POST);
echo "<hr>";
print_r($_SESSION['shopping_cart']);
echo "</pre>";
// echo "<br>";
// echo $p_id;;
?>
<!--สร้างตัวแปรสำหรับบันทึกการสั่งซื้อ -->
<?php
error_reporting( error_reporting() & ~E_NOTICE );
//Set ว/ด/ป เวลา ให้เป็นของประเทศไทย
date_default_timezone_set('Asia/Bangkok');
$order_name = $_POST["order_name"];
$order_lastname = $_POST["order_lastname"];
$order_addr = $_POST["address"];
$order_email = $_POST["order_email"];
$order_phone = $_POST["order_phone"];
$p_qty = $_POST["product_qty"]; //จำนวน
$total = $_POST['total'];
$order_date = date("Y-m-d H:i:s"); // วันที่ ปี เดือน วัน
$order_status = 1;
//บันทึกการสั่งซื้อลงใน order_detail
mysqli_query($conn, "BEGIN");
$query1 = "INSERT INTO lotto_order VALUES(null,
'$order_name',
'$order_lastname',
'$order_addr' ,
'$order_email',
'$order_phone',
'$order_status',
'$order_date'
)";
$result1 = mysqli_query($conn, $query1) or die ("Error in query: $query1 " . mysql_error());
//ฟังก์ชั่น MAX() จะคืนค่าที่มากที่สุดในคอลัมน์ที่ระบุ ออกมา หรือ่า ใช้สำหรับหาค่าที่มากที่สุด
$query2 = "SELECT MAX(order_id) AS order_id FROM lotto_order WHERE order_phone='$order_phone'";
$result2 = mysqli_query($conn, $query2);
$row = mysqli_fetch_array($result2);
$order_id = $row['order_id'];
//loop
foreach($_SESSION['shopping_cart'] as $p_id=>$p_qty) {
$query3 = "SELECT * FROM lotto_product where product_id='$p_id'";
$result3 = mysqli_query($conn, $query3);
$row3 = mysqli_fetch_array($result3);
$total=$row3['product_price']*$p_qty;
$query4 = "INSERT INTO lotto_orderdetail
values(null,
'$order_id',
'$p_id',
'$p_qty',
'$total')";
$result4 = mysqli_query($conn, $query4);
// for($a=0;$a<count($sess_id);$a++){
// $resultX = mysqli_query("UPDATE lotto_product SET item = item - '$p_qty[$a]' WHERE product_id = '$sess_id[$a]'");
// }
// $updatestock = "UPDATE lotto_product SET item=item-".$_POST['item'][$i]."WHERE product_id =".$_POST['product_id'][$i]."LIMIT 1";
// $resultX = mysqli_query($updatestock);
// echo "<br> = $updatestock";
}
if($result1 && $result4){
mysqli_query($conn, "COMMIT");
$msg = "บันทึกข้อมูลเรียบร้อยแล้ว ";
foreach($_SESSION['shopping_cart'] as $p_id)
{
// $resultX = ($updatestock);
// echo "<br> = $updatestock";
//unset($_SESSION['cart'][$pro_id]);
unset($_SESSION['shopping_cart']);
}
}
else{
mysqli_query($conn, "ROLLBACK");
$msg = "บันทึกข้อมูลไม่สำเร็จ กรุณาติดต่อเจ้าหน้าที่ค่ะ ";
}
// exit();
?>
<!-- <script type="text/javascript">
alert("<?php echo $msg;?>");
window.location ='index.php';
</script> -->
ผมไม่ค่อยเข้าใจหลักการ การใช้พารามิเตอร์เท่าไร ว่ามันจะต้องเพิ่มเติมโค๊ดในส่วนของขั้นตอนไหนในโค๊ด
ผมอยากจะให้ระบบสามารถตัดยอดจำนวนสินค้าในสต๊อกได้ตามให้ลดตามจำนวนที่สั่งซื้อไป จะต้องเพิ่มเติม ใส่อะไรตรงไหน ช่วยบอกทีครับ
ขอบคุณครับ
Tag : PHP, MySQL, HTML5, CodeIgniter, Bootstrap Framework, XAMPP
|
ประวัติการแก้ไข 2017-11-09 22:57:56 2017-11-09 22:58:47
|
|
|
|
|
Date :
2017-11-09 22:29:14 |
By :
AionQRy |
View :
836 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
https://www.thaicreate.com/php/forum/128662.html ตัวอย่าง
เขียน Code ก็เก่งพอได้ แต่ไม่มี <form> </form>
-----------------------------------------------------------------
แนะนำ
1. สร้าง Form รับค่า เลข บิลที่จะตัด Stock
- <textbox>
- <textbox>
- <submit search >เพื่อหาเลข บิล
- <submit Update>
- ( รายการที่ Select)
2. SQL select * from .... where bill_id = '$bill_id' And ......(แล้วแต่ในระบบ);
3. Update set table .....
ไปเล่นดู
|
|
|
|
|
Date :
2017-11-10 08:32:51 |
By :
Hararock |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้แบบเดิมใช่มั้ยครับ เเล้ว เอาไปใส่ไว้หลังif
Code (PHP)
if($result1 && $result4){
mysqli_query($conn, "COMMIT");
$msg = "บันทึกข้อมูลเรียบร้อยแล้ว ";
foreach($_SESSION['shopping_cart'] as $p_id)
{
// $resultX = ($updatestock);
// echo "<br> = $updatestock";
//unset($_SESSION['cart'][$pro_id]);
unset($_SESSION['shopping_cart']);
}
}
หรือก่อน if ครับ เพิ่มลงไปในไฟล์เดียวกันของ saveorder.php
เลยใช่มั้ยครับ ขอบคุณครับ
|
ประวัติการแก้ไข 2017-11-10 20:51:47
|
|
|
|
Date :
2017-11-10 20:50:29 |
By :
AionQRy |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|