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 penyelesaian error saat pengambilan data?

edited September 2 in Diskusi Pemrograman & IT
mohon bantuannya para mastah.
Saya memiliki relasi tabel seperti ini


dan tampilan program saya seperti ini

ketika bukti pembayaran diupload, data tersebut di simpan di tabel pembayaran dan otomatis juga tersimpan di tabel detail_pembayaran.
permasalahannya, saya mencoba untuk mengupload bukti pembayaran pada sebuah akun yang memiliki 2 data booking. saya mencoba mengupload bukti pembayaran untuk bookingan nomor 2 dengan kode detail 31, tapi yang di proses malah bookingan nomor 1 dengan kode detail 30.

dan kenapa tampilan data booking yang kedua tidak rapi seperti bookingan yang pertama?

kodingnya seperti ini
<table class="table table-striped table-dark"> <thead class="thead-dark"> <tr> <th class="col-md-1">No</th> <th class="col-md-1">Kode Detail</th> <th class="col-md-2">Nama Desa</th> <th class="col-md-2">Nama Paket</th> <th class="col-md-2">Tanggal Wisata</th> <th class="col-md-2">Aksi</th> </tr> </thead> <?php include 'config/connection.php'; $kd_detail = isset($_POST['kd_detail']) ? $_POST['kd_detail'] : ''; $kd_booking = isset($_POST['kd_booking']) ? $_POST['kd_booking'] : ''; $id_user = isset($_POST['id_user']) ? $_POST['id_user'] : ''; $no = 1; $sql = "SELECT desa.nama_desa,paket.nama_paket,booking.tgl_wisata,user.id_user,detail_booking.kd_detail FROM desa INNER JOIN paket ON desa.kd_desa=paket.kd_desa INNER JOIN booking ON paket.kd_paket=booking.kd_paket INNER JOIN user ON user.id_user=booking.id_user INNER JOIN detail_booking ON booking.kd_booking=detail_booking.kd_booking WHERE uname='$_SESSION[uname]'"; $query = mysqli_query($conn,$sql); while ($data = mysqli_fetch_array($query)) { ?> <tr> <td><?php echo $no++ ?></td> <td><?php print_r($data['kd_detail']) ?></td> <td><?php echo $data['nama_desa']; ?></td> <td><?php echo $data['nama_paket']; ?></td> <td><?php echo $data['tgl_wisata']; ?></td> <td> <a href="#mymodal" data-toggle="modal" id="kd_detail<?php echo $data['kd_detail']; ?>" class="btn btn-warning ">Upload Bukti</a> </td> </tr> </table> </div> <div id="mymodal" class="modal fade"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> <h4 class="modal-title">Upload Bukti Pembayaran</h4> </div> <div class="modal-body"> <form action="proses/pembayaran.php" method="POST" enctype="multipart/form-data"> <input name="kd_detail" type="hidden" class="form-control" value="<?php echo $data['kd_detail'] ?>" readonly/> <label>Upload Bukti</label> <input type="file" name="bukti"> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Batal</button> <input type="submit" name="submit" class="btn btn-primary" value="Simpan"> </div> </form> </div> </div> </div> </div> <?php }?>




pada pembayaran.php
<?php include '../config/connection.php'; if (isset($_POST["submit"])) { $kd_bayar = $_POST['kd_bayar']; $bukti = $_FILES['bukti']['name']; $kd_detail = $_POST['kd_detail']; $target = "../img/".basename($_FILES['bukti']['name']); $sql = "INSERT INTO pembayaran (kd_bayar,kd_detail,bukti) VALUES ('$kd_bayar','$kd_detail','$bukti')"; $query = mysqli_query($conn,$sql); if ($query) { $sql2 = mysqli_query($conn,"SELECT kd_bayar FROM pembayaran WHERE kd_detail='$kd_detail'"); $data = mysqli_fetch_array($sql2); $kd_bayar = $data['kd_bayar']; $detail = "INSERT INTO detail_pembayaran (kd_bayar,status_bayar) VALUES ('$kd_bayar','lunas')"; $ok = mysqli_query($conn,$detail); header('location:../mybooking.php'); }else{ header('location:../mybooking.php?status=error'); } } ?>



Sekiranya para masta bisa membantu saya, Terima kasih.
Tagged:

Comments

  • edited September 10
    penyelesaiannya ada disini <input name="kd_detail[]"
  • ada script js nya?, kayaknya salah lempar nilai pas ke modal deh,
  • alhamdulillah masalah diatas udah clear mas @bigboy16 .

    mau tanya mas, masalahnya gini.
    saya melakukan booking dengan 2 akun.

    akun pertama saya menginputkan misal nama wisata arum jeram tgl wisata 13 september 2018.

    akun kedua saya menginputkan wisata arum jeram tgl wisata 15 september 2018.
    persmaan data akun pertama dengan akun kedua terletak pada nama wisata yang sama yaitu sama-sama arum jeram.

    di akun kedua tidak ditampilkan data wisata arum jeram tgl wisata 15 september 2018.
    tetapi di akun pertama ditampilkan tetapi ditampilkannya dua kali (karena akun kedua tadi melakukan booking data yang sama dengan akun pertama).

    akun pertama


    akun kedua


    padahal pada database datanya benar.


    <div id="myModal" class="modal fade"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> <h4 class="modal-title">Booking</h4> </div> <div class="modal-body"> <form action="proses/booking2.php" method="POST"> <input name="kd_paket" type="hidden" class="form-control" value="<?php echo $data['kd_paket'] ?>" readonly/> <div class="form-group"> <?php $user = mysqli_query($conn,"SELECT id_user,nama_user FROM user WHERE uname='$_SESSION[uname]'"); while ($nama = mysqli_fetch_array($user)) { ?> <input type="hidden" name="id_user" class="form-control" value="<?php echo $nama['id_user'] ?>"> <?php } ?> </div> <div class="form-group"> <label>Tanggal Wisata</label> <input type="text" name="tgl_wisata" id="tgl_wisata" class="form-control" autocomplete="off"> </div> <div class="form-group"> <label>Jumlah Orang</label> <select name="jml_org" class="form-control"> <option value="20">20</option> <option value="30">30</option> <option value="40">40</option> <option value="50">50</option> </select> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Batal</button> <input type="submit" name="kd_booking" class="btn btn-primary" value="simpan"> </div> </form> </div> </div> </div> </div> <?php } ?>


    pada booking2.php
    <?php include '../config/connection.php'; $id_user = $_POST['id_user']; $kd_paket = $_POST['kd_paket']; $jml_org = $_POST['jml_org']; $tgl_wisata = $_POST['tgl_wisata']; $total_bayar = $_POST['total_bayar']; $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_wisata) VALUES ('$id_user','$kd_paket','$jml_org','$tgl_wisata')"; $query = mysqli_query($conn,$sql); if ($query) { $sql2 = mysqli_query($conn,"SELECT kd_booking FROM booking WHERE kd_paket='$kd_paket'"); $row = mysqli_fetch_array($sql2); $kd_booking = $row['kd_booking']; $book = "INSERT INTO detail_booking (kd_booking,total_bayar) VALUES ('$kd_booking','$total_bayar')"; $ok = mysqli_query($conn,$book); header('location:../mybooking.php'); }else{ header('location:../profil-desa.php'); } ?>





  • script nampilinnya coba di post kesini, insertnya dah bener, paling pas manggilnya aja ini
  • ini mas @bigboy16
    <div class="table-responsive"> <table class="table table-striped table-dark"> <thead class="thead-dark"> <tr> <th class="col-md-1">No</th> <th class="col-md-2">Nama Desa</th> <th class="col-md-2">Nama Paket</th> <th class="col-md-2">Tanggal Wisata</th> <th class="col-md-2">Aksi</th> </tr> </thead> <?php include 'config/connection.php'; $kd_detail = isset($_POST['kd_detail']) ? $_POST['kd_detail'] : ''; $id_user = isset($_POST['id_user']) ? $_POST['id_user'] : ''; $no = 1; $sql = "SELECT detail_booking.kd_detail,booking.tgl_wisata,user.id_user,paket.nama_paket,desa.nama_desa FROM detail_booking INNER JOIN booking ON detail_booking.kd_booking=booking.kd_booking INNER JOIN user ON booking.id_user=user.id_user INNER JOIN paket ON booking.kd_paket=paket.kd_paket INNER JOIN desa ON paket.kd_desa=desa.kd_desa WHERE user.uname='$_SESSION[uname]'"; $query = mysqli_query($conn,$sql); while ($data = mysqli_fetch_array($query)) { ?> <tr> <td><?php echo $no++; ?></td> <td><?php echo $data['nama_desa']; ?></td> <td><?php echo $data['nama_paket']; ?></td> <td><?php echo $data['tgl_wisata']; ?></td> <td> <a href='#' class='open_modal' id='<?php echo $data['kd_detail']; ?>' class="btn btn-danger">Upload Bukti</a> </td> <td> </td> </tr> <?php } ?> </table>


  • hasil query dari select itu gimana? kenapa pake where nya uname bukan booking.id_user?
  • Alurnya seperti ini mas @bigboy16 .
    Untuk melakukan booking setiap user harus mendaftar. Setelah mendaftar otomatis setiap user akan memiliki akun. Misalkan user pertama dengan nama akun udin. Dia melakukan booking paket A. Pada menu list booking si udin, otomatis hanya menampilkan data booking yang dia lakukan.
    Begitu juga untuk user-user yang lain.

    Saya udah coba pake where booking.id_user, tapi malah data booking si udin juga ditampilkan di akun si budi. Tulisnyanya kaya gini kan mas WHERE booking.id_user. Saya coba yg WHERE booking.id_user=’$id_user’ malah ga nampil.


    padahal data pada gambar diatas saya melakukannya booking dengan akun user lain. harusnya pada akun ini ga tampil kan mas. ini saya yg pakai WHERE booking.id_user.

    Maaf mas saya baru pemula
  • edited September 12
    gini, langkah pertama supaya yakin query itu bener,
    cobain select tadi itu pake mysqlworkbench atau phpmyadmin, run query itu dengan paramnya diganti nilai asli,

    cobain untuk 2 user td, hasilnya gimana?, seharusnya kalau datanya bener, keluarnya akan sendiri2, nanti kalau hasil run querynya udah bener, berarti ada yg salah pas parameterize nya atau pas lempar parameter atau yg lain,
    nah skrg coba aja query itu di run dulu, hasilnya gimana nanti kabarin kesini yak.

    nb: querymu agak sedikit belibet sebenernya, tp gpp. dicoba aja dulu (gak trial and error gak mantab lah pokoknya).
    kalau mau bikin query join, yg pertama di select sebaiknya table yg paling banyak relasinya dulu, dalam hal ini tabel booking, baru deh join in kemana2,
  • saya udah coba mas @bigboy16

    1. pakai query


    hasilnya


    tapi ketika saya coba dengan id_user=1 malah tidak ada data yang ditampilkan


    padahal ditabel booking jelas, id_user=1 memiliki data bookingan


    2. seperti yang mas sarankan saya juga melakukan select pada tabel booking dahulu tapi hasilnya tetap ga muncul untuk id_user=1



  • kenapa ya mas klu 2 query ini saya tes di phpmyadmin jalan tapi klu di terapkan di programnya malah ga nampil


    hasilnya klo di terapkan di program


    tp klu saya pakai query yang tidak ada '$id_user' di program datanya malah ditampilkan

    hasilnya
  • edited September 13
    agak aneh sih, coba pake query gini :
    SELECT detail_booking.kd_detail,booking.tgl_wisata,user.id_user,paket.nama_paket,desa.nama_desa FROM booking LEFT JOIN detail_booking ON booking.kd_booking=detail_booking.kd_booking LEFT JOIN user ON booking.id_user=user.id_user LEFT JOIN paket ON booking.kd_paket=paket.kd_paket LEFT JOIN desa ON paket.kd_desa=desa.kd_desa WHERE booking.id_user = 1;

    kalo gak bisa juga ganti pake uname, : hasilnya gimana
  • Saya sudah coba seperti yang mas @bigboy16 saranin dengan query

    Hasilnya work mas. Tapi saya masuk di id_user 58, data bookingan id_user 1 juga di tampilkan.

    Tapi ketika saya menggunakan session

    Datanya malah ditampilkan 2 kali mas


    Saya sempat typo mas dengan menuliskan query yang harusnya

    tapi malah saya tulis

    Pas query yang typo itu saya gunakan work sih mas, tapi masalah modal untuk uploadnya yang malah ga muncul. Setelah saya cari, ternyata kd_detail untuk pemanggilan modalnya ga ketangkap (kosong).



    yang muncul cuma bayangan hitam aja



    untuk modal saya menggunakan ajax


    caranya gimana ya mas, biar modalnya bisa muncul lagi?



  • irya said:

    Saya sudah coba seperti yang mas @bigboy16 saranin dengan query

    Hasilnya work mas. Tapi saya masuk di id_user 58, data bookingan id_user 1 juga di tampilkan.


    yang ini agak aneh. coba export tablemu ke sql mas, sak datanya, tak cobanya nanti,
    tebakanku ada data yg redundant
  • maksudnya export gini kan mas @bigboy16 ?
  • iya,

    masalah dari querymu kenapa id 1 gak keluar sama sekali sebenernya ada di data detail_booking


    ada nomer booking yg punya detail lebih dari 1 , dan ada yg gak punya sama sekali, kebetulan yg id 1 kode bookingnya sama sekali tidak punya detail . makanya kalo di inner join gak muncul sama sekali, tapi kalau di left join tampilnya jadi begini:


    penyelesaiannya:, pastikan tiap booking punya detail, dan tidak duplicate, ini berarti. masalah awalmu belum selesai, yg masalah kode detail, bahkan salah pas insert diawal kalo saya bilang.
    detail booking bisa lebih dari satu untuk satu booking tapi dikasih kolom active or tidak atau bisa juga pake kolom status itu, ni saya kasih contoh pake status DELETE:


    jadi sebaiknya diselesaikan dulu bagian insert detail_bookingnya


  • klo detail_bookingnya pake mysqli_insert_id bisa ga ya mas @bigboy16 ?

    saya coba cara di sebuah artikel pake mysqli_insert_id tapi kok error, kira-kira salahnya dimana ya mas?


    pada tabel detail_booking


    maaf mas saya tanya terus.



  • bisa,
    mysqli_insert_id($conn)
  • work mas. terima kasih banyak mas @bigboy16

    maaf mas, saya boleh bertanya satu lagi mas?

    ini kenapa tombolnya tidak muncul ya mas?




Sign In or Register to comment.