|
|
|
ต้องการบันทึกค่าตัวแปรที่คำนวนได้ลงฐานข้อมูล PHP |
|
|
|
|
|
|
|
ผมต้องการบันทึกค่าตัวแปรที่คำนวนได้ลงฐานข้อมูลครับ
ปล.มาอีกแล้วครับ ช่วยด้วยนะครับ ผมค่อยไม่รู้ซักเท่าไหร่
ขอบคุณล่วงหน้าครับ
cart_member.php
<?php include('access.php');?>
<?php
error_reporting( error_reporting() & ~E_NOTICE );
session_start();
$p_id = $_REQUEST['p_id'];
$act = $_REQUEST['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'){
unset($_SESSION['shopping_cart']);
}
?>
<?php include('h.php');?>
<!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">
<style type="text/css">
input[type=number]{
width:40px;
text-align:center;
color:red;
font-weight:600;
}
</style>
</head>
<body>
<div class="container">
<div class="row">
<?php include('banner.php');?>
</div>
<div class="row">
<div class="col-md-12">
<?php include('navbar_member.php');?>
</div>
</div>
</div>
<body>
<div class="container">
<div class="row">
<div class="col-md-3"></div>
<div class="col-md-7">
<form id="frmcart" name="frmcart" method="post" action="?act=update">
<table width="100%" border="0" align="center" class="table table-hover">
<tr>
<td height="40" colspan="6" align="center" bgcolor="#CCCCCC"><strong><b>ตะกร้าสินค้า</span></strong></td>
</tr>
<tr>
<td align="center" bgcolor="#EAEAEA"><strong>No.</strong></td>
<td align="center" bgcolor="#EAEAEA"><strong>สินค้า</strong></td>
<td align="center" bgcolor="#EAEAEA"><strong>ราคา</strong></td>
<td align="center" bgcolor="#EAEAEA"><strong>จำนวน</strong></td>
<td align="center" bgcolor="#EAEAEA"><strong>รวม/รายการ</strong></td>
<td align="center" bgcolor="#EAEAEA"><strong>ลบ</strong></td>
</tr>
<?php
if(!empty($_SESSION['shopping_cart']))
{
require_once('Connections/condb.php');
foreach($_SESSION['shopping_cart'] as $p_id=>$p_qty)
{
$sql = "select * from tbl_product where p_id=$p_id";
$query = mysql_db_query($database_condb, $sql);
while($row = mysql_fetch_array($query))
{
$sum = $row['p_price'] * $p_qty;
$total += $sum;
echo "<tr>";
echo "<td>";
echo $i += 1;
echo ".";
echo "</td>";
echo "<td width='334'>"." " . $row["p_name"] . "</td>";
echo "<td width='100' align='right'>" . number_format($row["p_price"],2) . "</td>";
echo "<td width='57' align='right'>";
echo "<input type='text' name='amount[$p_id]' value='$p_qty' size='2'/></td>";
echo "<td width='100' align='right'>" .number_format($sum,2)."</td>";
echo "<td width='100' align='center'><a href='cart.php?p_id=$p_id&act=remove' class='btn btn-danger btn-xs'>ลบ</a></td>";
echo "</tr>";
}
}
echo "<tr>";
echo "<td colspan='4' bgcolor='#CEE7FF' align='right'>Total</td>";
echo "<td align='right' bgcolor='#CEE7FF'>";
echo "<b>";
echo number_format($total,2);
echo "</b>";
echo "</td>";
echo "<td align='left' bgcolor='#CEE7FF'></td>";
echo "</tr>";
}
?>
<tr>
<td></td>
<td colspan="5" align="right">
<a href="cart.php?act=Cancel-Cart" class="btn btn-danger"> ยกเลิกตะกร้าสินค้า </a>
<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">
<span class="glyphicon glyphicon-shopping-cart"> </span> สั่งซื้อ </button>
<br><br>
<a href="how-to-buy_member.php"> <span class='glyphicon glyphicon-barcode'> </span> วิธีชำระเงิน </a>
</td>
</tr>
</form>
</div>
</div>
</div>
</body>
</html>
confirm.php
<?php
error_reporting( error_reporting() & ~E_NOTICE );
session_start();
?>
<?php include('h.php');?>
<!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">
<style type="text/css">
input[type=number]{
width:40px;
text-align:center;
color:red;
font-weight:600;
}
</style>
</head>
<body>
<div class="container">
<div class="row">
<?php include('banner.php');?>
</div>
<div class="row">
<div class="col-md-12">
<?php include('navbar_member.php');?>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-md-2"></div>
<div class="col-md-8">
<table width="700" border="1" align="center" class="table">
<tr>
<td width="1558" colspan="5" align="center">
<strong>สั่งซื้อสินค้า</strong></td>
</tr>
<tr class="success">
<td align="center">ลำดับ</td>
<td align="center">สินค้า</td>
<td align="center">ราคา</td>
<td align="center">จำนวน</td>
<td align="center">รวม/รายการ</td>
</tr>
<?php
require_once('Connections/condb.php');
$total=0;
foreach($_SESSION['shopping_cart'] as $p_id=>$p_qty)
{
$sql = "select * from tbl_product where p_id=$p_id";
$query = mysql_db_query($database_condb, $sql);
$row = mysql_fetch_array($query);
$sum = $row['p_price']*$p_qty;
$total += $sum;
echo "<tr>";
echo "<td align='center'>";
echo $i += 1;
echo "</td>";
echo "<td>" . $row["p_name"] . "</td>";
echo "<td align='right'>" .number_format($row['p_price'],2) ."</td>";
echo "<td align='right'>$p_qty</td>";
echo "<td align='right'>".number_format($sum,2)."</td>";
echo "</tr>";
}
echo "<tr>";
echo "<td align='right' colspan='4'><b>รวม</b></td>";
echo "<td align='right'>"."<b>".number_format($total,2)."</b>"."</td>";
echo "</tr>";
?>
</table>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-md-4"></div>
<div class="col-md-5" style="background-color:#f4f4f4">
<h3 align="center" style="color:green">
<span class="glyphicon glyphicon-shopping-cart"> </span>
ที่อยู่ในการส่งสินค้า </h3>
<form name="formlogin" action="saveorder.php" method="POST" id="login" class="form-horizontal">
<div class="form-group">
<div class="col-sm-12">
<input type="text" name="name" class="form-control" required placeholder="ชื่อ-สกุล" />
</div>
</div>
<div class="form-group">
<div class="col-sm-12">
<textarea name="address" class="form-control" rows="3" required placeholder="ที่อยู่ในการส่งสินค้า"></textarea>
</div>
</div>
<div class="form-group">
<div class="col-sm-12">
<input type="text" name="phone" class="form-control" required placeholder="เบอร์โทรศัพท์" />
</div>
</div>
<div class="form-group">
<div class="col-sm-12">
<input type="email" name="email" class="form-control" required placeholder="อีเมล์" />
</div>
</div>
<div class="form-group">
<div class="col-sm-12">
<td align="right" >หลักฐานการโอนเงิน :</td>
<input name="slip" type="file" required class="bg-warning" id="slip" size="40" />
</div>
</div>
<div class="form-group">
<div class="col-sm-12" align="center">
<button type="submit" class="btn btn-primary" id="btn">
ยืนยันสั่งซื้อ </button>
</div>
</div>
</form>
</div>
</div>
</div>
</body>
</html>
saveorder.php
<?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');
//สร้างตัวแปรวันที่เพื่อเอาไปตั้งชื่อไฟล์ที่อัพโหลด
$date1 = date("Ymd_His");
//สร้างตัวแปรสุ่มตัวเลขเพื่อเอาไปตั้งชื่อไฟล์ที่อัพโหลดไม่ให้ชื่อไฟล์ซ้ำกัน
$numrand = (mt_rand());
$name = $_POST["name"];
$address = $_POST["address"];
$email = $_POST["email"];
$phone = $_POST["phone"];
$add = "";
//หาตรงนี้.........................................................................
$order_date = date("Y-m-d H:i:s");
$status = 1;
$slip = (isset($_POST['slip']) ? $_POST['slip'] : '');
$parcel_number =0;
$filename = $_FILES['slip']['name'];
$type = strrchr($filename, ".");
$newname ='slip';
$path_copy='/bookshop/pimg/' . $newname;
if (move_uploaded_file($_FILES['slip']['tmp_name'],$path_copy)) {}
// print_r($_FILES);
// exit();
//บันทึกการสั่งซื้อลงใน order_detail
mysql_db_query($database_condb, "BEGIN");
$sql1 = "INSERT INTO tb_order VALUES
(NULL,
'$name',
'$address',
'$email',
'$phone',
'$total',
'$status',
'$order_date',
'$newname',
'$parcel_number'
)";
$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;
// $p_name = $row2['p_name'];
$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 ='profile.php';
</script>
</body>
</html>
Tag : PHP, Bootstrap Framework, Appserv
|
|
|
|
|
|
Date :
2021-01-21 12:55:46 |
By :
gadiaw24 |
View :
1269 |
Reply :
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ปัญหาคือ?
|
|
|
|
|
Date :
2021-01-21 12:58:19 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ก็ในหน้า confirm.php คุณหาจำนวนรวมมาได้ยังไง
ก็เอาวิธีเดียวกัน มาหาจำนวนรวมนั้นใส่ตัวแปรแล้วใส่ในคำสั่ง INSERT ก็แค่นั้นเอง
|
|
|
|
|
Date :
2021-01-21 17:51:56 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าเข้าใจไม่ผิด คือ ต้องการบันทึกราคารวมลงในฟิลด์ "add" ของตาราง tb_order แต่ผลลัพธ์กลับเป็น 0.00 ทุก row ใช่หรือไม่...ถ้าใช่
Code
cart_member (แสดงค่า $total ถูกต้อง)
foreach($_SESSION['shopping_cart'] as $p_id=>$p_qty)
{
$sql = "select * from tbl_product where p_id=$p_id";
$query = mysql_db_query($database_condb, $sql);
while($row = mysql_fetch_array($query)) {
$sum = $row['p_price'] * $p_qty;
$total += $sum;
// ...
}
}
confirm (แสดงค่า $total ถูกต้อง)
$total=0;
foreach($_SESSION['shopping_cart'] as $p_id=>$p_qty) {
$sql = "select * from tbl_product where p_id=$p_id";
$query = mysql_db_query($database_condb, $sql);
$row = mysql_fetch_array($query);
$sum = $row['p_price']*$p_qty;
$total += $sum;
// ...
}
saveorder (แสดงค่า $total เป็น 0.00)
// เพราะยังไม่มีการกำหนดค่าเริ่มต้นให้กับ $total จึงได้ค่าว่าง และเมื่อบันทึกลงฐานข้อมูล
// ตัวเลขเปลี่ยนตาม format ของ field แก้โดยรับค่าทาง $_SESSION จากหน้าตะกร้าหรือหน้ายืนยัน
// ...หรือเลียนแบบการถ่ายค่าตัวแปร $total จากสองหน้าดังกล่าวก่อนส่งเข้า statement ด้านล่างนี้
$sql1 = "INSERT INTO tb_order VALUES
(NULL,
'$name',
'$address',
'$email',
'$phone',
'$total',
'$status',
'$order_date',
'$newname',
'$parcel_number'
)";
อาจไม่ใช่คำตอบแบบคัดลอกวาง ยังไงลองทำเองตามที่แนะนำ
ถ้าพอมีพื้นฐานน่าจะเข้าใจและทำได้
แต่ถ้าไม่เข้าใจส่วนไหนก็ถามได้ครับ
|
|
|
|
|
Date :
2021-01-21 21:37:15 |
By :
lakornworld |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|