Как автоматически установить идентификатор базы на дату - PullRequest
0 голосов
/ 05 декабря 2018

Я новичок в PHP.Я надеюсь, что кто-то может помочь мне.до этого извините мой английский плохой.

Я хочу установить базу 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 равен NULL.

$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.

1 Ответ

0 голосов
/ 05 декабря 2018

Прежде всего, у вас что-то не так с вашим CREATE TABLE.При создании таблицы у вас должен быть первичный ключ AUTOINCREMENT, это ваш идентификатор.Таким образом, это было бы что-то вроде этого:

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;

Как я могу видеть, у вас есть две ошибки:

  1. Дата должна быть как дата ('Ym-d')http://php.net/manual/en/function.date.php

  2. Вы пытаетесь вставить значение типа int, например ". $ Kd_booking.", Когда это работает только для строк.

Надеюсьэто помогло.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...