update stok pada php

agan-agan sekalian, saya mau nanyak lagi nih tentang update stok tiket saya, dimana ya salah dari koding dibawah ini ? kenapa stok_tiket pada database nya gak berkurang-kurang ? kasusnya saat udah kita daftar form data diri trus di simpan muncul deh form data diri, nah maksud saya saat klik button "cetak data registrasi" maka stok_tiket yang ada di tabel tiket jadi berkurang.

 <!DOCTYPE html >
<?php include ("../koneksi.php");
 ?>

<html>
<head>
<title>CV. CHANDRA MEDAN</title>
<link rel="stylesheet" type="text/css" href="../style.css">
<link rel="stylesheet" type="text/css" href="../page.css">
</head>
<body>
<nav class="top-bar" data-topbar role="navigation">
      <ul class="title-area">
        <li class="name">
          <h1><a href="index.php">CV. CHANDRA</a></h1>
        </li>
        <li class="toggle-topbar menu-icon"><a href="#"><span></span></a></li>
      </ul>

      <section class="top-bar-section">
      <!-- Right Nav Section -->
        <ul class="right">
          <li><a href="../index.php"><span class="glyphicon glyphicon-home">Home</a></li>
          <li><a href="cektiket2.php"><span class="glyphicon glyphicon-search"></span>Cari Tiket</a></li>
          <li><a href="bataltiket.php"><span class="glyphicon glyphicon-cancel"></span>Batal Tiket</a></li>
          <li><a href="profil.php"><span class="glyphicon glyphicon-profil"></span>Profil</a></li>
          <li><a href="contact.php"><span class="glyphicon glyphicon-phone"></span>Contact</a></li>
        </ul>
      </section>
    </nav>

<div class="panel panel-default">

 <?php
if (isset($_REQUEST['stok'])) {
  # code...
  include '../koneksi.php';
  $nama_pemesan = $_POST['nama_pemesan'];
  $alamat = $_POST['alamat'];
  $no_telp = $_POST['no_telp'];
  $dewasa = $_POST['dewasa'];
  $anak = $_POST['anak'];
  $tgl_order = date('Y/m/d/');
  date_default_timezone_set('Asia/Jakarta');
  $jam_order = date(' h:i:s');

  $query=mysql_query("select max(id_order) as id_order FROM orders");
        while ($data_tiket=mysql_fetch_array($query)) {
        $query_stok=mysql_query("SELECT * FROM tiket where id_tiket='$data_tiket[id_tiket]' ");
        $data_stok=mysql_fetch_array($query_stok);
        $stok=mysql_query("UPDATE tiket SET stok_tiket=stok_tiket-'$data_tiket[dewasa]' where id_tiket='$data_tiket[id_tiket]' ");
          header("location:index.php");
        }
}
 ?>

<?php
include ("../koneksi.php");
include ("../config/fungsi_tanggal.php");

//jika diklik tombol batal maka pesanan akan dibatalkan dan data akan dihapus sesuai dengan getidPesan
if(isset($_REQUEST['batal'])){
	mysql_query("DELETE FROM orders WHERE id_order = '$_GET[getid_order]'");
	echo"<script>
		alert('Registrasi dibatalkan');
		window.location.href='../index.php';
		</script>";
}

//------------------------------------------------------------------

if(isset($_REQUEST['getid_tiket'])){ //jika GET idKA diset atau berjalan maka akan tampil detailPesanan
$tampil = mysql_fetch_array(mysql_query("SELECT * FROM tiket WHERE id_tiket = '$_GET[getid_tiket]'"));
?>
<center><h1>» Rincian Pemesanan Tiket «</h1></center>
<form method="POST" action="">
<table border="0" align="center" width="70%" style="border : 1px solid black;border-spacing : 1px;">
  <tr>
    <th align="justify">Jurusan</th>
    <th>:</th>
    <td><?=$tampil['tujuan']?></td>
    <th align="justify">Tanggal Berangkat</th>
    <th>:</th>
    <td><?=tgl_indo($tampil['tgl_berangkat'])?></td>
    <th align="justify">Kelas</th>
    <th>:</th>
    <td><?=$tampil['kelas']?></td>
  </tr>
  <tr>
    <th align="justify">Jam Berangkat</th>
    <th>:</th>
    <td><?=$tampil['jam_berangkat']?></td>
    <th align="justify">Harga</th>
    <th>:</th>
    <td><?=$tampil['harga']?></td>
  </tr>
</table>

<br>
<?php $lihatPesanan = mysql_fetch_assoc(mysql_query("SELECT * FROM orders WHERE id_order='$_GET[getid_order]'"));?>

<table align="center" width="50%" >
	<tr>
    	<td colspan="3"><h2>» Data Diri</h2></td>
    </tr>
    <tr>
        <td>Kode Order</td>
        <td>:</td>
        <td><?=$lihatPesanan['id_order']?></td>
    </tr>
	<tr>
		<td>Nama Pemesan</td>
		<td>:</td>
		<td><?=$lihatPesanan['nama_pemesan']?></td>
	</tr>
	<tr>
		<td>Alamat</td>
		<td>:</td>
		<td><?=$lihatPesanan['alamat']?></td>
	</tr>
    <tr>
    	<td>No Telepon/HP</td>
		<td>:</td>
		<td><?=$lihatPesanan['no_telp']?></td>
    </tr>
    <tr>
    	<td>Dewasa</td>
		<td>:</td>
		<td><?=$lihatPesanan['dewasa']?></td>
    </tr>
    <tr>
    	<td>Anak-Anak</td>
		<td>:</td>
		<td><?=$lihatPesanan['anak']?></td>
    </tr>
    <tr>
		<td>Total Biaya</td>
		<td>:</td>
		<td><?=($lihatPesanan['dewasa']+$lihatPesanan['anak'])." * Rp. ".number_format($tampil['harga'],0,',','.')." = <b>Rp. ".number_format(($lihatPesanan['dewasa']+$lihatPesanan['anak'])*$tampil['harga'],0,',','.')."<b>"?></td>
	</tr>
    <tr>
    	<td colspan="3"><h3>» Info!</h3></td>
    </tr>
    <tr>
    	<td colspan="3">
    - Simpan Kode Order Anda (Jika sewaktu-waktu ingin membatalkan tiket)<br>
    - Reservasi dapat dilakukan 2x24 jam sebelum kereta berangkat<br>
    - Harga dan ketersediaan tempat duduk sewaktu waktu dapat berubah<br>
    - Pastikan anda telah menerima konfirmasi pembayaran dari PT. Kereta Api Indonesia untuk ditukarkan dengan tiket di stasiun online</td>
        </tr>
    <tr>
		<td colspan=6 align='center'>
        <!--
        Tombol cetak berfungsi untuk mencetak data yang terdapat pada
        file cetakPesan.php dengan membawa nilai get dari idKA, idPesan
        -->
        <a href="cetak.php?getid_tiket=<?=$_GET['getid_tiket']?>&getid_order=<?=$_GET['getid_order']?>" target="_blank" name="stok" class='btnn btn-info'>Cetak Data Registrasi</a>
        <a href="../index.php?"><input type="button" name="tutup" value="Tutup Info Detail" class='btnn btn-primary'/></a>
        <input type="submit" name="batal" value="Batalkan Pemesanan" class='btnn btn-warning'/></td>
	</tr>
</table>
</form>
<?php }?>

<div class="footer">
<center>Copyright © 2017 CV. CHANDRA. All rights reserved.</center>
</div>
</div>
</body>
</html>
avatar elsakim07
@elsakim07

66 Kontribusi 4 Poin

Diperbarui 6 tahun yang lalu

6 Jawaban:

coba cek di url, sesuai g tu yg getid_tiket sama getid_order

 href="cetak.php?getid_tiket=<?=$_GET['getid_tiket']?>&getid_order=<?=$_GET['getid_order']?>"
avatar Nandar
@Nandar

648 Kontribusi 204 Poin

Dipost 6 tahun yang lalu

yang itu udah gan,, kalo yang bagian ini menurut agan sudah benar kah ?

 <?php
if (isset($_REQUEST['stok'])) {
  # code...
  include '../koneksi.php';
  $nama_pemesan = $_POST['nama_pemesan'];
  $alamat = $_POST['alamat'];
  $no_telp = $_POST['no_telp'];
  $dewasa = $_POST['dewasa'];
  $anak = $_POST['anak'];
  $tgl_order = date('Y/m/d/');
  date_default_timezone_set('Asia/Jakarta');
  $jam_order = date(' h:i:s');

  $query=mysql_query("select max(id_order) as id_order FROM orders WHERE id_tiket='$_GET[getid_tiket]'");
        while ($data_tiket=mysql_fetch_array($query)) {
        $query_stok=mysql_query("SELECT * FROM tiket where id_tiket='$_GET[getid_tiket]'");
        $data_stok=mysql_fetch_array($query_stok);
        $stok=mysql_query("UPDATE tiket SET stok_tiket=stok_tiket-'$data_tiket[dewasa]' where id_tiket='$_GET[getid_tiket]' ");
        }
}
 ?>

avatar elsakim07
@elsakim07

66 Kontribusi 4 Poin

Dipost 6 tahun yang lalu

di sini get nya salah :


$query=mysql_query("select max(id_order) as id_order FROM orders WHERE id_tiket='$_GET[getid_tiket]'");
        while ($data_tiket=mysql_fetch_array($query)) {
        $query_stok=mysql_query("SELECT * FROM tiket where id_tiket='$_GET[getid_tiket]'");
        $data_stok=mysql_fetch_array($query_stok);
        $stok=mysql_query("UPDATE tiket SET stok_tiket=stok_tiket-'$data_tiket[dewasa]' where id_tiket='$_GET[getid_tiket]' ");
        }

harusnya


$query=mysql_query("select max(id_order) as id_order FROM orders WHERE id_tiket='".$_GET['getid_tiket']."'");
        while ($data_tiket=mysql_fetch_array($query)) {
        $query_stok=mysql_query("SELECT * FROM tiket where id_tiket='".$_GET['getid_tiket']."'");
        $data_stok=mysql_fetch_array($query_stok);
        $stok=mysql_query("UPDATE tiket SET stok_tiket= stok_tiket - '".$data_tiket[0]."' where id_tiket='".$_GET['getid_tiket']."' ");
        }

inget di dalam get atau post harus menggunakan '' contoh

 $_GET['data']
avatar Nandar
@Nandar

648 Kontribusi 204 Poin

Dipost 6 tahun yang lalu

maaf, gan tetap gak bisa ... jadi saya pakai trigger.. bisa berkurang stoknya , yg mau saya tanyak gimana sih menjumlahkan 2 field di trigger ? koding nya seperti dibawah ini gan.. saya mau menambahkan jumlah dewasa dan jumlah anak gan,,

 DROP TRIGGER IF EXISTS `update_stok_tiket` ;

CREATE DEFINER = `root`@`localhost` TRIGGER `update_stok_tiket` AFTER INSERT ON `orders`
FOR EACH
ROW BEGIN
UPDATE tiket SET stok_tiket = stok_tiket - NEW.(dewasa + anak) WHERE id_tiket = new.id_tiket;

END

avatar elsakim07
@elsakim07

66 Kontribusi 4 Poin

Dipost 6 tahun yang lalu

ga bisa di apa? erornya apa?

kalau trigger sy jarang pakai, jadi kurang paham

avatar Nandar
@Nandar

648 Kontribusi 204 Poin

Dipost 6 tahun yang lalu

gak ada muncul error apa2 gan, mulus tapi stok tetap gak berkurang... makanya saya bingung dimana salahnya gan,,

avatar elsakim07
@elsakim07

66 Kontribusi 4 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban