gpt4 book ai didi

php - 如何获得两个连接变量的最大值

转载 作者:行者123 更新时间:2023-11-29 02:48:50 25 4
gpt4 key购买 nike

我想我弄错了。我有两个变量,一个是获取日期和月份,另一个是获取数字 (000)。我将两个变量连接在一起并将其设置为另一个变量,然后将其插入数据库。所以我想更新列以便每个收据都有唯一的编号。收据编号格式是 (14-07000) 做的是获取插入变量列的最大值并每次加 1找到一个新的最大值。但是我没有得到我需要的东西。它按我的意愿插入但不更新。我希望收据无列为 14-7000)。然后开始更新到14-07001, 14-07002, 14-07003, 14-07004, 14-07005, 14-07006,14-07007等。所以明天可以改成15-07000,下个月可以改到 15-08000。

这是我使用的代码

  <?php
// pass the data into the database
$tran_id1 = date('d-m');
$tran_id2 = "000";
$transaction_id = $tran_id1 . $tran_id2;



if (empty($received & $amount_to_pay & $amount_collected) == false)
{

$sql8 = "INSERT INTO `transactions` (`patient_name`,`total_amount`, `amount_tendered`, `payment_status`, `payment_date`, `paid_for`,`hospital_no`, `received_by`,`receipt_no`) VALUES ('$received', '$amount_to_pay', '$amount_collected', '$payment', '$payment_date', '$being_pay_for','$hosp_no', '$firstname','$transaction_id')";
$query8 = mysqli_query($dbconnect, $sql8) or die (mysqli_error($dbconnect));
$sql9 = "INSERT INTO `transaction_paid_for` (`paid_for_name`) VALUES ('$others')";
$query9 = mysqli_query($dbconnect, $sql9) or die (mysqli_error($dbconnect));
$max = "SELECT MAX(`receipt_no`) AS transaction_id FROM `transactions`";
$max2 = mysqli_query($dbconnect, $max);
$result1 = mysqli_fetch_array($max2);
$result2 = $result1['transaction_id'];
$result3 = $result2+1;
$sql = "UPDATE `transactions` SET `receipt_no`='$result3' WHERE `patient_name`='$received'";
$result4 = mysqli_query($dbconnect, $sql);
}
?>

最佳答案

我猜你不能在 varchar 字段上使用这样的数学计算。一个好的替代方法是将 d-m 存储在单独的 varchar 列中,并将递增的数字存储在 int 列中。

然后您可以使用代码获取所需的收据编号。

//create 2 columns in your table eg dm and receipt_no    
//to store tran_id1 & tran_id2 into dm and receipt_no columns
$tran_id1 = date('d-m');
$tran_id2 = "000";

// Create connection & select
$sql = "SELECT MAX(receipt_no)+1 MAX_RECEIPT_NO FROM transactions WHERE dm='" . $tran_id1 . "' LIMIT 0,1";
$result = $conn->query($sql);
while($row = $result->fetch_assoc()) {
$tran_id2 = $row["MAX_RECEIPT_NO"];
}
//create your receipt no
$transaction_id = $tran_id1 . str_pad($tran_id2, 3, '0', STR_PAD_LEFT);
//now use sql update with this $transaction_id

注意:

  • 您的代码没有考虑年份。
  • 您可能希望避免重复,因此对 2 列设置唯一约束
  • 您还可以将 sql 包装在事务中或使用单独的列进行锁定,请参阅 SELECT and lock a row and then UPDATE .

关于php - 如何获得两个连接变量的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38373441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com