JOIN DENGAN MYSQL

Hallo teman-teman, saya mau tanya mengenai join mysql, saya dsni memakai left join.. saya ada buat uraian tugas utk pegawai, saya sudah registrasi 3 user, user A dan B. nah ketika user A menambahkan uraian tugas nya, user B  ikut terisi juga, padahal user B ini belum mengisi uraian tugasnya.

struktur table

image.png

di database nya cuma 1 yg muncul

image.png

image.png

unit_laundry

<?php
                            $ambildata = "select * from tb_pegawai LEFT JOIN tb_laundry on tb_pegawai.id = tb_pegawai.id";
                            $sql = mysqli_query($conn, $ambildata) or die (mysqli_eror($conn));
                            while($data=mysqli_fetch_array($sql)){
                                $tanggal = $data['tanggal'];
                                $jam = $data['jam'];
                                $uraian_tugas = $data['uraian_tugas'];
                                $waktu = $data['waktu'];
                                $jumlah_capaian = $data['jumlah_capaian'];
                                $waktu_efektivitas = $data['waktu_efektivitas'];
                            ?>

function

if(isset($_POST['addlaundry'])){
    $tanggal = $_POST['tanggal'];
    $uraian_tugas = $_POST['uraian_tugas'];
    $jam = $_POST['jam'];
    $waktu = $_POST['waktu'];
    $jumlah_capaian = $_POST['jumlah_capaian'];
    $waktu_efektivitas = $_POST['waktu_efektivitas'];
    $hitung = $_POST['waktu'] * $_POST['jumlah_capaian'] / 375;
    $total = $hitung;


    $addtable = mysqli_query($conn,"insert into tb_laundry (tanggal,jam,uraian_tugas, waktu, jumlah_capaian, waktu_efektivitas,total)
    values ('$tanggal','$jam','$uraian_tugas','$waktu','$jumlah_capaian','$waktu_efektivitas','$total')");
    if($addtotable) {
        header('location:unit_laundry.php');
    } else {
        echo 'Gagal';
        header('location:index.php');
    }
}

connection

<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$dbname = 'db_hospital';
$conn = mysql_connect($host,$user,$pass) or die(mysql_error());
$dbselect = mysql_select_db($dbname);
avatar novaje
@novaje

28 Kontribusi 3 Poin

Diperbarui 2 tahun yang lalu

Tanggapan

Sematkan juga schema tabel yang berleasi supaya orang lain yang ngebaca paham relasi antar tabel yang sudah kamu buat

Dan kondisi tabel yang berelasi yang ada saat ini biar kami mudah untuk memahami masalah yang kamu hadapi dengan hasil yang diinginkan

udah di edit tu bg struktur tablenya

Yang ada masalah di tb_pegawai mau join dengan tb_laundry apa dengan tb_cssd dan tb_gizi?

Isi tabel pegawai ada 2 atau 3 dan isi tabel laundry ada 1 terus pas mau ditampilkan malah ada dua baris betul?

data pegawai dihubungankan ke unit masing2 bang sesuai departmentnya

3 Jawaban:

<div>Hapus LEFT pada Join, Arti LEFT pada JOIN adalah menampilkan data pada tabel kiri baik berlelasi dengan tabel yang ada di sebelah kanan atau pun tidak.</div>

avatar logika
@logika

19 Kontribusi 8 Poin

Dipost 2 tahun yang lalu

Jawaban Terpilih

<div>mungkin left join bisa diganti jadi right join jadi jika pegawai nya ga punya uraian tugas gaakan ditampilin.<br><br>trus sepertinya ada kesalahan di query pada syntax "ON",&nbsp;</div><pre>on tb_pegawai.id = tb_pegawai.id</pre><div><br>ini akan selalu menghasilkan true karena yg dibandingkan adalah sesuatu yg sama, seharusnya adalah</div><pre>ON tabel_a.id = tabel_b.tabel_a_id</pre>

avatar zidanesc
@zidanesc

4 Kontribusi 3 Poin

Dipost 2 tahun yang lalu

Tanggapan

trimakasih bg masukannya.. di coba dulu ya bgg

bg untuk uraian tugas nya sudah bisa muncul 1 user 1 uraian tugas nya, nah sekarang yg jadi masalah nama pegawai nya bg ga muncul hehe

NAMA PEGAWAI TANGGAL JAM URAIAN TUGAS WAKTU JUMLAH KEGIATAN WAKTU EFEKTIVITAS (hitungan permenit) TOTAL AKSI

Kalo pakai inner join, yg muncul hanya di databasenya aja bg

<pre>&lt;?php $ambildata = mysqli_query($conn,"select * from tb_pegawai RIGHT JOIN tb_gizi on tb_pegawai.id = tb_gizi.id"); //untuk conn pilih nama pegawai if(isset($_GET['cek'])){ $ambildata = mysqli_query($conn, "SELECT * from tb_pegawai where nama_lengkap LIKE '%". $_GET ['cek']."%'"); } while($data=mysqli_fetch_array($ambildata)){ $nama_lengkap = $data['nama_lengkap']; $tanggal = $data['tanggal']; $jam = $data['jam']; $uraian_tugas = $data['uraian_tugas']; $waktu = $data['waktu']; $jumlah_capaian = $data['jumlah_capaian']; $waktu_efektivitas = $data['waktu_efektivitas']; $total = $data['total']; ?&gt;</pre><div><br><figure data-trix-attachment="{&quot;contentType&quot;:&quot;image/png&quot;,&quot;filename&quot;:&quot;image.png&quot;,&quot;filesize&quot;:16982,&quot;height&quot;:169,&quot;url&quot;:&quot;https://i.ibb.co/ccdhC0g/image.png&quot;,&quot;width&quot;:1546}" data-trix-content-type="image/png" data-trix-attributes="{&quot;presentation&quot;:&quot;gallery&quot;}" class="attachment attachment--preview attachment--png"><img src="https://i.ibb.co/ccdhC0g/image.png" width="1546" height="169"><figcaption class="attachment__caption"><span class="attachment__name">image.png</span></figcaption></figure><br>@zidanesc<br><br><br><br></div>

avatar novaje
@novaje

28 Kontribusi 3 Poin

Dipost 2 tahun yang lalu

Tanggapan

field id di tb_gizi itu id buat siapa ya?

buat relasi table nya bg.. jd join nya itu berdasarkan id yg di tb_pegawai bg

kalo di ketik manual id nya di tb_gizi. bisa masuk bg nama pegawai nya.. @zidanesc

jd gini bg, saya mau ambil nama.lengkap dr tb_pegawai dan tb_gizi utk uraian tugas nya, nah saya mau menggabungkan kedua itu agar bisa mnjdi laporan bg..

Login untuk ikut Jawaban