我是个PHP新手。我希望有人能帮助我。在此之前,对不起,我的英语不好。
我想根据另一个表中的日期和id来设置kd_transaksi。当人们预订时,系统会自动设置kd_transaksi。
$tgl_pesan = date("Ymd");
$cek = mysqli_query($conn, "SELECT max(kd_booking) AS kode FROM booking WHERE kd_booking LIKE '$tgl_pesan%'");
$row = mysqli_fetch_array($cek);
$kdMax = $row['kode'];
$nourut = substr($kdMax, 8, 4);
$nourut++;
$char = "BO";
$kd_transaksi = $char.$tgl_pesan.printf('%04s', $nourut);
$kd_booking = mysqli_insert_id($conn);
$book = "INSERT INTO detail_booking (kd_booking,kd_transaksi,total_bayar) VALUES ('".$kd_booking."','$kd_transaksi',$total_bayar')";
$ok = mysqli_query($conn,$book);
if ($ok) {
header('location:../mybooking.php');
} else{
mysqli_close($conn);
}
但查询$cek中的结果为空。
$cek = mysqli_query($conn, "SELECT max(kd_booking) AS kode FROM booking WHERE kd_booking LIKE '$tgl_pesan%'");
我该如何修复它?
预订表
CREATE TABLE `booking` (
`kd_booking` int(11) NOT NULL,
`id_user` int(11) NOT NULL,
`kd_paket` int(11) NOT NULL,
`jml_org` int(11) NOT NULL,
`tgl_pesan` date NOT NULL,
`tgl_wisata` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
我想要的是
如果有人今天预订并获得kd_booking 21,那么输出将是: BO2018120521。
发布于 2018-12-05 09:10:10
首先,您的CREATE TABLE有问题。当你创建一个表时,你应该有一个AUTOINCREMENT主键,这是你的id。所以它应该是这样的:
CREATE TABLE `booking` ( `id` INT NOT NULL AUTO_INCREMENT , `id_user` INT(11) NOT NULL , `kd_paket` INT(11) NOT NULL , `jml_org` INT(11) NOT NULL , `tgl_wisata` DATE NOT NULL , `tgl_pesan` DATE NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB;
我可以肯定你有两个错误:
尝试插入像“”.$kd_booking“”这样的int值时,
希望这能帮上忙。
https://stackoverflow.com/questions/53623239
复制相似问题