Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
membuat button hitung pada PHP
saya punya halaman tambah nilai, dihalaman ini saya ingin menghitung nilai rata2 setiap mahasiswa. dimana seharusnya nilai rata2 itu akan didapatkan setelah memasukkan data dan akan diupdate jika saya memasukkan data dengan id_user yg sama tapi kriteria berbeda.
namun ternyata, sat saya memasukkan 1 data, data tersebut akan dihitung, dan jika saya memasukkan data lagi dengan id yg sama namun kriteria berbeda, dia akan dihitung masing2 kriteria(tidak bisa update data yg sudah ada).
kemudian saya coba untuk memisahkan proses inputdata dengan proses hitungnya. tapi ternyata malah proses hitungnya gk jalan. apa saya salah di bagian code buttonnya ya? mohon bantuannya gan..
ini code awal sebelum saya pisah (dimana data yg masuk masih masing-masing / belum dirata2) :
<?php
//mulai proses tambah data
//cek dahulu, jika tombol tambah di klik
if(isset($_POST['tambah'])){
//inlcude atau memasukkan file koneksi ke database
include('koneksi.php');
//jika tombol tambah benar di klik maka lanjut prosesnya
$id_det = $_POST['id_det'];
$id_user = $_POST['id_user'];
$id_kt = $_POST['id_kt'];
$value = $_POST['value'];
mysql_query ("Insert into det_kriteria(id_user, id_kt, value)values('$id_user','$id_kt','$value')");
$url = "nilai.php";
$alert = "Tambah Data Berhasil";
//hitungan
$query = "select * from det_kriteria NATURAL JOIN kriteria WHERE id_user = '$id_user'";
$sql = mysql_query($query);
while($data = mysql_fetch_array($sql))
{
//$id_user = $data['id_user'];
//$query1 = "select * from det_kriteria NATURAL JOIN kriteria WHERE id_user = '$id_user'";
//$sql1 = mysql_query($query1);
//$vektor_sk = 0;
//while($data1 = mysql_fetch_array($sql1))
//{
$id_kt = $data['id_kt'];
$perbaikan_bobot = $data['perbaikan_bobot'];
$value = $data['value'];
$hasil_pangkat= round(pow($value,$perbaikan_bobot),2) ;
$vektor_s = $hasil_pangkat;
//}
}
mysql_query ("Insert into hasil(id_user, vektor_s, vektor_v)values('$id_user','$vektor_s','$vektor_v')");
$alert = "Tambah Data Berhasil";//
$data2 =mysql_query("select sum(vektor_s) from hasil");
//$data2= mysql_fetch_array($query2);
$sigma= $data2['sum(vektor_s)'];
$sigma = $sigma + $vektor_s; //vektor_sk
$vektor_v = round ($vektor_s/$sigma,2);
$selectquery = mysql_query("select * from hasil");
while ($dt = mysql_fetch_array($selectquery))
{
$newhasil=$dt['id_hasil'];
$sawal=$dt['vektor_s'];
$vubah=round($sawal/$sigma,2);
$query ="update hasil set vektor_v='$vubah' where id_hasil= '$newhasil'";
mysql_query($query);
}
//jika query input sukses
header('location: nilai.php');
}
?>
ini code ketika saya pisah, tapi ini hanya bagian proses hitungnya saja, karna proses input datanya tidak bermasalah.
<?php //cek dahulu, jika tombol hitung di klik
if(isset($_POST['hitung'])){
//inlcude atau memasukkan file koneksi ke database
include('koneksi.php');
$query = "select * from det_kriteria NATURAL JOIN kriteria WHERE id_user = '$id_user'";
$sql = mysql_query($query);
while($data = mysql_fetch_array($sql))
{
$id_kt = $data['id_kt'];
$perbaikan_bobot = $data['perbaikan_bobot'];
$value = $data['value'];
$hasil_pangkat= round(pow($value,$perbaikan_bobot),2) ;
$vektor_sk = $hasil_pangkat;
}
$data2 =mysql_query("select sum(vektor_s) from hasil");
//$data2= mysql_fetch_array($query2);
$sigma= $data2['sum(vektor_s)'];
$sigma = $sigma + $vektor_sk; //vektor_sk
$vektor_v = round ($vektor_sk/$sigma,2);
$selectquery = mysql_query("select * from hasil");
while ($dt = mysql_fetch_array($selectquery))
{
$newhasil=$dt['id_hasil'];
$sawal=$dt['vektor_s'];
$vubah=round($sawal/$sigma,2);
$query ="update hasil set vektor_v='$vubah' where id_hasil= '$newhasil'";
mysql_query($query);
}
mysql_query ("Insert into hasil(id_user, vektor_s, vektor_v)values('$id_user','$vektor_sk','$vektor_v')");
$alert = "Tambah Data Berhasil";//dituker keatas
header('location: detail_nilai.php');
?>
ini code menampilkan buttonnya :
<td width="160">
<button type="submit" name="hitung" class="btn btn-primary">Hitung</button>
</td>
1 Jawaban:
jika saya benar permasalahannya adalah : Anda ingin memasukkan data dari form ke tabel BILA id_user tidak ada di dalam tabel. DAN Anda ingin data otomatis diUPDATE bila id_user di dalam form sama dengan di dalam tabel.
Jadi, menurut Saya. Anda cukup menambahkan percabangan yang memenuhi kedua kondisi diatas. Dan perhatikan tata letak kode kode Anda.
Karena sepenglihatan Saya, QUERY untuk INSERT berada di bagian luar. Sehingga mau tidak mau QUERY INSERT akan dijalankan. Itu salah satunya
Kalau diminta kode. Berikut contoh sederhananya
$id_user_form = $_POST['id_user'];
$Query_select = mysql_query("SELECT * from nilai where id_user='$id_user_form'");
$jum_baris = mysql_num_rows($Query_select);
if($jum_baris = 1){
$Query_update = "UPDATE nilai set kriteria1='$kriteria1', kriteria2='$kriteria2' where id_user='$id_user_form'";
mysql_query($Query_update);
}
else {
$Query_insert = "INSERT into nilai(kriteria1,kriteria2) values('$kriteria1', '$kriteria2')";
mysql_query($Query_insert);
}
Itu bukan jawaban melainkan contoh. Bagaimanapun dilihat itu terlalu sederhana untuk program Anda.
NB : Perhatikan penamaan variabel dengan baik!