Tolong pilih kategori sesuai, jenis posting (diskusi atau bukan) dan sertakan tag/topik yang sesuai seperti komputer, java, php, mysql, dll. Promosi atau posting tidak pada tempatnya akan kami hapus!
- Bagi Anda yang ingin mendaftar, baca link berikut:
http://diskusiweb.com/discussion/50491/how-to-registrasi-diskusiweb-com-baca-ini-terlebih-dahulu
- Cara menyisipkan kode program supaya tampil rapi dan terformat dengan baik di diskusiweb.com: http://www.diskusiweb.com/discussion/50415/cara-menyisipkan-kode-program-di-diskusiweb-com
- Cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

Bagaimana cara membuat kode otomatis berdasarkan tanggal

mohon bantuannya gan. saya ingin membuat kode transaksi otomatis dimana kode transaksi itu gambungan antara kd_booking (auto increment) dan tanggal pesan.
code yang saya tulis seperti ini
<?php 
include '../config/connection.php';
 
$id_user = $_POST['id_user'];
$kd_paket = $_POST['kd_paket'];
$jml_org = $_POST['jml_org'];
$tgl_pesan = date("Y-m-d");
$tgl_wisata = $_POST['tgl_wisata'];
$wkt_wisata = $_POST['wkt_wisata'];
 
$sql = "INSERT INTO booking (id_user,kd_paket,jml_org,tgl_pesan,tgl_wisata,wkt_wisata) VALUES ('$id_user','$kd_paket','$jml_org','$tgl_pesan','$tgl_wisata','$wkt_wisata')";
$query = mysqli_query($conn,$sql);
 
$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);
 
$pack = mysqli_query($conn,"SELECT harga FROM paket WHERE kd_paket='$kd_paket'");
$data = mysqli_fetch_array($pack);
$total_bayar = $data['harga'] * $jml_org;
 
$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);
}
?>
Tagged:

Comments

  • $kd_transaksi = $char . $tgl_pesan .printf('%04s', $nourut); ini kan udah.
    yg dimau seperti apa?
  • tapi code itu outputnya hanya 0000 dan tidak tersimpan kedatabase mas
  • $kd_transaksi = $char . $tgl_pesan .sprintf('%04s', $nourut);
    pake sprintf,
    $nourut di var_dump coba isinya apa
  • <?php
    printf(var_dump($nourut));
    $kd_transaksi = $char.$tgl_pesan.printf('%04s', $nourut);
    ?>


    hasilnya bool(false) 0000 mas
  • brarti si nourut gak ada isinya, makanya keluar 0000, coba yang
    SELECT max(kd_booking) AS kode FROM booking WHERE kd_booking LIKE '$tgl_pesan%' ini di run di dbase, keluarnya apa
  • Keluarannya null mas
  • ya bikin kalo gitu bikin kondisi if ($nourut==null) trus no urut mau di set berapa gitu, brarti kan nilai awal itu untuk tanggal segitu, awalnya mau 0 atau 1
  • maaf mas, kok nilainya masih 0000 ya mas?
    <?php 
    $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';
    $nourut = 0;
    if ($nourut==Null) {
    $kd_transaksi = $char.$tgl_pesan.printf('%04s', $nourut);
    $nourut = 0;
     
    $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);
    }
    }else{
     
    $nourut = 1;
    }
    ?>
  • $nourut++; buat apa? emang ada loop diatasnya?

    $nourut = substr($kdMax, 8, 4);
    $nourut++;
    $char = 'BO';
    $nourut = 0;

    ini model deklarasi nya kok bolak balik begini?
    deklarasi begini yg dipake sama script ya yg di declarasi terakhir
  • $nourut++; itu buat nambah
    bigboy16 said:

    $nourut++; buat apa? emang ada loop diatasnya?

    $nourut = substr($kdMax, 8, 4);
    $nourut++;
    $char = 'BO';
    $nourut = 0;

    ini model deklarasi nya kok bolak balik begini?
    deklarasi begini yg dipake sama script ya yg di declarasi terakhir

    $nourut untuk menambhakan 1 setiap id yang diambil. saya liat disetiap tutorialnya ditambah itu mas.
    maaf mas letak perbedaanya dimana ya mas?. saya juga menuliskan urutan seperti ini.
    $nourut = substr($kdMax, 8, 4);
    $nourut++;
    $char = 'BO';
    $nourut = 0;

    apakah SELECT max() itu cuma berlaku untuk tipe varchar mas? soalnya setiap tutorial yang saya temukan mereka menggunakan tipe varchar tp disini saya tipe datanya int autoincrement?
  • lha sudah di ++ kok di 0 lagi tu gimana? kalo mau nambah gitu ya kudu di intval
    $nourut = intval(substr($kdMax, 8, 4));
    baru di $nourut++; dan gak usah di set 0 lagi di bawahnya,
    maksudku if null itu yg dibagian $nourut = substr($kdMax, 8, 4);,
    dirubah jadi
    
    $nourut = (substr($kdMax, 8, 4)==null)?0:intval(substr($kdMax, 8, 4));
  • edited December 5
    maaf mas, hasilnya tetap sama.

    saya kan coba tulis seperti ini
    <?php
    include '../config/connection.php';
     
    $id_user = $_POST['id_user'];
    $kd_paket = $_POST['kd_paket'];
    $jml_org = $_POST['jml_org'];
    $tgl_pesan = date("Ymd");
    $tgl_wisata = $_POST['tgl_wisata'];
    $wkt_wisata = $_POST['wkt_wisata'];
     
    $pack = mysqli_query($conn,"SELECT harga FROM paket WHERE kd_paket='$kd_paket'");
    $data = mysqli_fetch_array($pack);
    $total_bayar = $data['harga'] * $jml_org;
     
    $sql = "INSERT INTO booking (id_user,kd_paket,jml_org,tgl_pesan,tgl_wisata,wkt_wisata)
    VALUES ('$id_user','$kd_paket','$jml_org','$tgl_pesan','$tgl_wisata','$wkt_wisata')";
    $query = mysqli_query($conn,$sql);
     
    $kd_booking = mysqli_insert_id($conn);
    $char = "BO";
     
    $kd_transaksi = $char.$kd_booking.$tgl_pesan;
    var_dump($kd_transaksi);
    $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);
    }
    ?>
    </php>

    kemudian saya var_dump(kd_transaksi) hasilnya "BO8420181205". sesuai sih dengan yang saya inginkan tapi apakah cara seperti itu efektif mas?
  • ya efektif aja sih, gak masalah
  • Terima kasih banyak atas bantuannya mas
Sign In or Register to comment.