สอบถามการทำ insert และ update ลงฐานข้อมูลพร้อมกันครับ
สอบถามการทำ insert และ update พร้อมกันครับ พอดีกำลังทำเว็บขายสินค้า แล้วเวลาที่ลูกค้าไม่ได้ชำระเงินตามเวลาที่กำหนด ก็จะให้ระบบเปลี่ยนสถานะเป็นยกเลิกอัตโนมัตืครับ ซึ่งในโค้ดผมๆ ใช้คำสั่ง Insert การยกเลิกเข้าไปในตาราง order_cancel และใช้คำสั่ง Update เข้าไปปรับสถานะในตาราง order ครับ
ซึ่งจากที่ผมได้ทดสอบคือเมื่อเรากดเข้าไปในหน้าออร์เดอร์นั่้นมันจะ Insert ในตาราง order_cancel ก่อน แล้วต้องรีเฟรชจออีกรอบมันถึงจะ Update ปรับสถานะในตาราง order
ผมต้องการจะทำทั้งสองอย่างพร้อมกันโดยไม่ต้องรีเฟรชอีกรอบ ต้องแก้ไขอย่างไรดีครับ?
Code
<?php
include_once("header.php");
?>
</script>
<title>รายการสั่งซื้อ</title>
<body>
<?php
$perpage = 15;
if (isset($_GET['page'])) {
$page = $_GET['page'];
} else {
$page = 1;
}
$start = ($page - 1) * $perpage;
$member_id = $_SESSION['member_id'];
$search = "";
if(isset($_POST["search_bt"])){
$search = $_POST["search"];
$type = $_POST["type"];
if($search==""){
echo "<script>alert('โปรดใส่ข้อมูลที่ต้องการค้นหา')</script>";
echo "<script>window.location='member-orders.php'</script>";
}elseif($type==""){
echo "<script>alert('โปรดเลือกประเภทที่ต้องการค้นหา')</script>";
echo "<script>window.location='member-orders.php'</script>";
}
$select = "Select * From orders Where member_id='$member_id' and $type Like '%$search%' Order By order_id DESC";
}else{
$select = "Select * From orders Where member_id='$member_id' Order By order_id DESC Limit {$start} , {$perpage} ";
}
$query = mysqli_query($link,$select) or die(mysqli_error($link));
?>
<div class="container theme-showcase" role="main">
<div class="row">
<div class="">
<FORM method="POST">
<div class="panel panel-mbrown">
<div class="panel-heading">
<h3 class="panel-title"><b><span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span> รายการสั่งซื้อ</b></h3>
<p align="right">
<a href="profile.php" class="btn btn-default"><span class="glyphicon glyphicon-user" aria-hidden="true"></span> ไปหน้าโปรไฟล์</a></p>
</div>
<div class="table-responsive">
<div>
<table class="table table-bordered table-striped table-hover" id="responsive-example-table" cellspacing="0">
<thead>
<tr class="info_brown">
<th width="100"><center>รหัสออร์เดอร์</center></th>
<th width="80"><center>สินค้าที่สั่งซื้อ</center></th>
<th width="100"><center>วันที่สั่งซื้อ</center></th>
<th width=""><center>สถานะออร์เดอร์</center></th>
<th width="100"><center>ใบสั่งซื้อ</center></th>
<th width="200"><center>การชำระเงินและการจัดส่ง</center></th>
<th width="140"><center>แจ้งยกเลิกสั่งซื้อ</center></th>
</tr>
</thead>
<tbody>
<?php
function DateDiff($strDate1,$strDate2) //คำนวณเวลา
{
return (strtotime($strDate2) - strtotime($strDate1))/ ( 60 * 60 * 24 ); // 1 day = 60*60*24
}
while ($data = mysqli_fetch_array($query)) {
$p_status = "";
$status = $data['status'];
$buy_date = $data['buy_date'];
$today = date("Y-m-d H:i");
$order_id = $data['order_id'];
$dayd = DateDiff("$buy_date","$today");
if($status == "1"){
$p_status = "รอการชำระเงิน";
}elseif($status == "2"){
$p_status = "ชำระเงินเรียบร้อย รอการจัดส่ง";
}elseif($status == "3"){
$p_status = "จัดส่งเรียบร้อย";
}elseif($status == "4"){
$p_status = "การสั่งซื้อถูกยกเลิกโดยลูกค้า";
}elseif($status == "5"){
$p_status = "การสั่งซื้อถูกยกเลิกเพราะเลยกำหนดชำระเงิน";
}else{
}
?>
<tr>
<td><?php echo $order_id ;?></td>
<td><center><a href="member-orders_detail.php?id=<?php echo md5(md5(md5($order_id))) ;?>" class="btn btn-sm btn-primary" target="_blank"><span class="glyphicon glyphicon-th-list" aria-hidden="true"></span> สินค้าที่สั่งซื้อ</a></center></td>
<td><center><?php echo $data['buy_date'];?><br>
<?php //echo $dayd;
$statusz = "5";
$cause = "2";
$cancel_date = date("Y-m-d H:i:s");
$admin_id = "1";
if(($dayd>=7)and($status==1)){ //ไม่เกิน7วัน
$last = $dayd-"7";
//echo "เกินกำหนด7วัน "." (เกินมาแล้ว".number_format($last,0)."วัน)";
$update = "Update orders Set status='$statusz' Where order_id=$order_id ";
mysqli_query($link,$update) or die(mysqli_error($link));
$insert = "Insert Into order_cancel (cause,cancel_date,order_id,admin_id) Values ('$cause','$cancel_date','$order_id','$admin_id')";
mysqli_query($link,$insert) or die(mysqli_error($link));
}else{
//echo "ยังไม่เกินกำหนด";
}?>
</center></td>
<td><center><?php echo $p_status;?></center></td>
<td><center><a href="order_paper.php?id=<?php echo md5(md5(md5($order_id))); ?>" class="btn btn-sm btn-info" target="_blank"><span class="glyphicon glyphicon-print" aria-hidden="true"></span> ปริ้นใบสั่งซื้อ</a></center></td>
<td><center><a href="member-orders_pay-ship.php?id=<?php echo md5(md5(md5($order_id))); ?>" class="btn btn-sm btn-primary" ><span class="glyphicon glyphicon-paste" aria-hidden="true"></span> การชำระเงิน และ<br><i class="fa fa-truck" aria-hidden="true"></i> การจัดส่ง</a></center></td>
<?php
$select1 = "Select orders.*, order_cancel.* From orders Inner Join order_cancel On order_cancel.order_id=orders.order_id Where orders.order_id = '$order_id '";
$query1 = mysqli_query($link,$select1) or die(mysqli_error($link));
$data1 = mysqli_fetch_array($query1);
?>
<td><center>
<?php
$cancel_date = $data1['cancel_date'];
if(($status == "2")or($status == "3")){
echo "ไม่มี";
}elseif($cancel_date == ""){ ?>
<a href="member-orders_cancel.php?id=<?php echo md5(md5(md5($order_id)));?>" class="btn btn-sm btn-warning"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span> กดยกเลิก</a>
<?php
}else{
echo $data1['cancel_date'];
}?>
</center></td>
</tr>
<?php } ?>
</tbody>
</table>
</div></div></div>
</FORM>
</div></div></div>
<?php mysqli_close($link); ?>
<!-- footer -->
<?php include_once("footer.php"); ?>
</body>
</html>
Tag : PHP, MySQL, HTML/CSS
Date :
2016-10-24 12:10:16
By :
no007
View :
4711
Reply :
9
เขียน trigger ไว้ที่ database ครับ
Date :
2016-10-24 13:25:49
By :
thesin18598
หรือไม่แทรกคำสั่งเช็คไฟล์ในไฟล์พวก config หรืออะไร ที่มันเรียกทำงานบ่อย ๆ ก็ได้ครับ
Date :
2016-10-25 11:57:09
By :
mr.win
ประมาณนี้น่าจะได้นะ ถ้า insert ได้ ก็ให้ update
Code (PHP)
$insert = "Insert Into order_cancel (cause,cancel_date,order_id,admin_id) Values ('$cause','$cancel_date','$order_id','$admin_id')";
$resule = mysqli_query($link,$insert);
if($resule){
$update = "Update orders Set status='$statusz' Where order_id=$order_id ";
mysqli_query($link,$update) or die(mysqli_error($link));
}
ประวัติการแก้ไข 2016-10-26 07:54:25
Date :
2016-10-26 07:50:17
By :
thesin18598
ลอง echo $insert; กับ echo $update; ตอนกดครั้งแรกมาดูก่อนครับ
Date :
2016-10-26 08:50:30
By :
thesin18598
Code (PHP)
...
$update = "Update orders Set status='$statusz' Where order_id=$order_id ";
mysqli_query($link,$update) or die(mysqli_error($link));
$insert = "Insert Into order_cancel (cause,cancel_date,order_id,admin_id) Values ('$cause','$cancel_date','$order_id','$admin_id')";
mysqli_query($link,$insert) or die(mysqli_error($link));
$p_status = "การสั่งซื้อถูกยกเลิกเพราะเลยกำหนดชำระเงิน";
...
Load balance : Server 02