ต้องการนำค่า ที่คำนวณได้ ลง mysql แบบมีทศนิยมด้วย ซึง code นี้ลงแต่จำนวนเต็มค่ะ
PHP ไม่ยอมใส่ค่า ทศนิยม ไปในฐานข้อมูล square_meter ช่วยด้วยค่ะ
Code (PHP)
<?php
$servername = "localhost";
$username = "ASS";
$password = "BBB";
$dbname = "CCC";
$connection = mysqli_connect($servername, $username, $password, $dbname);
if (!$connection) {
die("Connection failed: " . mysqli_connect_error());
}
$width = $_POST['width'];
$height = $_POST['height'];
// คำนวณตารางเมตร
$squareMeter = $width * $height;
$systemId = 1; // ดึงจาก system_id 1 =5000 บาท
$query = "SELECT price_per_sqm FROM price_systems WHERE system_id = ?";
$stmt = mysqli_prepare($connection, $query);
mysqli_stmt_bind_param($stmt, 'i', $systemId);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
if ($result && mysqli_num_rows($result) > 0) {
$row = mysqli_fetch_assoc($result);
$pricePerPiece = $row['price_per_sqm'] * $squareMeter;
$quantity = 1; // 1 ชุด
$totalPrice = $pricePerPiece * $quantity;
$profitMargin = 15; // สมมุติ 15%
$date = date('Y-m-d H:i:s');
$insertQuery = "INSERT INTO price_calculate (system_id, width, height, square_meter, quantity, price_per_piece, total_price, profit_margin, date)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
$insertStmt = mysqli_prepare($connection, $insertQuery);
mysqli_stmt_bind_param($insertStmt, 'iddiiddis', $systemId, $width, $height, $squareMeter, $quantity, $pricePerPiece, $totalPrice, $profitMargin, $date);
$insertResult = mysqli_stmt_execute($insertStmt);
if ($insertResult) {
echo "Record inserted successfully into price_calculate table.";
} else {
echo "Error inserting record: " . mysqli_error($connection);
}
} else {
echo "No pricing information found for the specified system ID.";
}
// Close the database connection
mysqli_close($connection);
?>
Tag : PHP, MySQL
ประวัติการแก้ไข 2023-06-28 11:17:18 2023-06-28 11:26:40
Date :
2023-06-28 11:16:05
By :
Vipada147
View :
328
Reply :
2
ตอน bind parameters กำหนด argument type ของแต่ละ field ให้สอดคล้องกับ DB
กรณีนี้คุณต้องการ square_meter เป็นจำนวนจริง แต่ argument type กำหนดเป็น ingeter
ผลก็ตามที่ได้ เพราะมันจะมีการแปลงประเภทข้อมูลตามที่กำหนด
อยากได้จำนวนจริงให้กำหนดเป็น double/float
Date :
2023-06-28 15:08:06
By :
009
ได้แล้วค่ะ ขอบมากนะค่ะ บังตาจริงๆ
Code (PHP)
mysqli_stmt_bind_param($insertStmt, 'iddddddds', $systemId, $width, $height, $squareMeter, $quantity, $pricePerPiece, $totalPrice, $profitMargin, $date);
Date :
2023-06-28 17:32:12
By :
Vipada147
Load balance : Server 01