masalah query di codeignitier

Assalamualaikum,

saya mau tanya untuk menghasilkan data seperti pada gambar di bawah ini bagaimana ya:

Saya punya tabel database seperti ini :

tbl_orang_tua

CREATE TABLE `tbl_orang_tua` (
  `orangtua_ID` bigint(20) NOT NULL,
  `posyandu_ID` int(11) DEFAULT NULL,
  `bapak` varchar(250) DEFAULT NULL,
  `ibu` varchar(250) DEFAULT NULL,
  `masuk_oleh` varchar(150) DEFAULT NULL,
  `masuk_tgl` datetime DEFAULT NULL,
  `update_oleh` varchar(150) DEFAULT NULL,
  `update_tanggal` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data untuk tabel `tbl_orang_tua`
--

INSERT INTO `tbl_orang_tua` (`orangtua_ID`, `posyandu_ID`, `bapak`, `ibu`, `masuk_oleh`, `masuk_tgl`, `update_oleh`, `update_tanggal`) VALUES
(1, 1, 'Irfan', 'Istiqomah', 'admin', '2018-04-24 07:07:04', NULL, NULL),
(2, 1, 'Rata', 'Lurus', 'admin', '2018-04-24 06:06:04', NULL, NULL);

tbl_bayi_lahir

CREATE TABLE `tbl_bayi_lahir` (
  `bayi_lahir_ID` bigint(20) NOT NULL,
  `orangtua_ID` int(11) DEFAULT NULL,
  `nama_bayi` varchar(250) DEFAULT NULL,
  `tgl_lahir` date DEFAULT NULL,
  `keterangan` text,
  `masuk_oleh` varchar(150) DEFAULT NULL,
  `masuk_tgl` date DEFAULT NULL,
  `update_oleh` varchar(150) DEFAULT NULL,
  `update_tgl` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data untuk tabel `tbl_bayi_lahir`
--

INSERT INTO `tbl_bayi_lahir` (`bayi_lahir_ID`, `orangtua_ID`, `nama_bayi`, `tgl_lahir`, `keterangan`, `masuk_oleh`, `masuk_tgl`, `update_oleh`, `update_tgl`) VALUES
(1, 1, 'Muhammad Umar Abdul Aziz', '2018-04-23', NULL, 'admin', '2018-04-24', NULL, NULL),
(2, 1, 'Muhammad Salman Abudrahman', '2017-04-03', NULL, 'admin', '2018-04-24', NULL, NULL),
(3, 1, 'Aisyah Qotrun Nada', '2015-04-02', NULL, 'admin', '2018-04-24', NULL, NULL),
(4, 2, 'Mersi', '2018-04-02', NULL, 'admin', '2018-04-24', NULL, NULL),
(5, 2, 'Bmw', '2018-04-05', NULL, 'admin', '2018-04-24', NULL, NULL);

tbl_tgl_meninggal

CREATE TABLE `tbl_tgl_meninggal` (
  `meninggal_ID` int(11) NOT NULL,
  `bayi_ID` int(11) DEFAULT NULL,
  `orangtua_ID` int(11) DEFAULT NULL,
  `tgl_mati` date DEFAULT NULL,
  `keterangan` text,
  `masuk_oleh` varchar(150) DEFAULT NULL,
  `masuk_tgl` date DEFAULT NULL,
  `update_oleh` varchar(150) DEFAULT NULL,
  `update_tgl` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data untuk tabel `tbl_tgl_meninggal`
--

INSERT INTO `tbl_tgl_meninggal` (`meninggal_ID`, `bayi_ID`, `orangtua_ID`, `tgl_mati`, `keterangan`, `masuk_oleh`, `masuk_tgl`, `update_oleh`, `update_tgl`) VALUES
(1, 4, 2, '2018-04-04', 'Sakit', 'admin', '2018-04-24', NULL, NULL),
(2, 5, 2, '2018-04-10', 'Sakit', 'admin', '2018-04-24', NULL, NULL);

Saya menggunakan codeignitier... Terimakasih, Mohon maaf...

avatar irfanmyj
@irfanmyj

32 Kontribusi 0 Poin

Diperbarui 6 tahun yang lalu

4 Jawaban:

coba pertanyaannya lebih spesifik mas, ngga bisanya bagian data yang mana? kode yang udah dicoba untuk itu seperti apa?

avatar hilmanski
@hilmanski

2686 Kontribusi 2135 Poin

Dipost 6 tahun yang lalu

Maaf mas @hilmanrdn, saya mau minta bantuanya kalau dibuat satu query join bisa gak?...

ini kode yang sudah saya buat


$this->db->select('a.orangtua_ID,a.posyandu_ID,a.bapak,a.ibu,b.bayi_lahir_ID,b.nama_bayi,b.tgl_lahir,c.meninggal_ID,c.bayi_ID,c.tgl_mati');
		$this->db->from('tbl_orang_tua as a');
		$this->db->join('tbl_bayi_lahir as b', 'b.bayi_lahir_ID = a.orangtua_ID', 'left');
		$this->db->join('tbl_tgl_meninggal as c', 'c.meninggal_ID = a.orangtua_ID', 'left');
		return $query = $this->db->get()->result();

avatar irfanmyj
@irfanmyj

32 Kontribusi 0 Poin

Dipost 6 tahun yang lalu

ngga perlu minta maaf gan. 1. Yang sudah dicoba gimana gan? ada error? errornya apa? diceritain dulu gan masalah sekarangnya

2. Ini ada referensi contoh multiple join di codeignter, semoga membantu http://www.kodingmadesimple.com/2015/08/how-to-use-join-query-in-codeigniter-examples.html

3. pasttin pada saat join yang paramter keduanya itu, data yang memang jadi foregin keynya ->join('...', "bandingin disini yang sama, misalnya b.orangtua_ID sama dengan a.orangtuaID

Karena foreign keynya itu yang jadi parameter samain data dari dua table yang berhubungan

avatar hilmanski
@hilmanski

2686 Kontribusi 2135 Poin

Dipost 6 tahun yang lalu

Ini yang sudah saya coba hasilnya mas :

$this->db->select('a.orangtua_ID,a.posyandu_ID,a.bapak,a.ibu,b.bayi_lahir_ID,b.nama_bayi,b.tgl_lahir,c.meninggal_ID,c.bayi_ID,c.tgl_mati');
		$this->db->from('tbl_orang_tua as a');
		$this->db->join('tbl_bayi_lahir as b', 'b.orangtua_ID = a.orangtua_ID', 'left');
		$this->db->join('tbl_tgl_meninggal as c', 'c.orangtua_ID = a.orangtua_ID', 'left');
		return $query = $this->db->get()->result();

Array
(
    [0] => stdClass Object
        (
            [orangtua_ID] => 2
            [posyandu_ID] => 1
            [bapak] => Rata
            [ibu] => Lurus
            [bayi_lahir_ID] => 4
            [nama_bayi] => Mersi
            [tgl_lahir] => 2018-04-02
            [meninggal_ID] => 1
            [bayi_ID] => 4
            [tgl_mati] => 2018-04-04
        )

    [1] => stdClass Object
        (
            [orangtua_ID] => 2
            [posyandu_ID] => 1
            [bapak] => Rata
            [ibu] => Lurus
            [bayi_lahir_ID] => 5
            [nama_bayi] => Bmw
            [tgl_lahir] => 2018-04-05
            [meninggal_ID] => 1
            [bayi_ID] => 4
            [tgl_mati] => 2018-04-04
        )

    [2] => stdClass Object
        (
            [orangtua_ID] => 2
            [posyandu_ID] => 1
            [bapak] => Rata
            [ibu] => Lurus
            [bayi_lahir_ID] => 4
            [nama_bayi] => Mersi
            [tgl_lahir] => 2018-04-02
            [meninggal_ID] => 2
            [bayi_ID] => 5
            [tgl_mati] => 2018-04-10
        )

    [3] => stdClass Object
        (
            [orangtua_ID] => 2
            [posyandu_ID] => 1
            [bapak] => Rata
            [ibu] => Lurus
            [bayi_lahir_ID] => 5
            [nama_bayi] => Bmw
            [tgl_lahir] => 2018-04-05
            [meninggal_ID] => 2
            [bayi_ID] => 5
            [tgl_mati] => 2018-04-10
        )

    [4] => stdClass Object
        (
            [orangtua_ID] => 1
            [posyandu_ID] => 1
            [bapak] => Irfan
            [ibu] => Istiqomah
            [bayi_lahir_ID] => 1
            [nama_bayi] => Muhammad Umar Abdul Aziz
            [tgl_lahir] => 2018-04-23
            [meninggal_ID] =>
            [bayi_ID] =>
            [tgl_mati] =>
        )

    [5] => stdClass Object
        (
            [orangtua_ID] => 1
            [posyandu_ID] => 1
            [bapak] => Irfan
            [ibu] => Istiqomah
            [bayi_lahir_ID] => 2
            [nama_bayi] => Muhammad Salman Abudrahman
            [tgl_lahir] => 2017-04-03
            [meninggal_ID] =>
            [bayi_ID] =>
            [tgl_mati] =>
        )

    [6] => stdClass Object
        (
            [orangtua_ID] => 1
            [posyandu_ID] => 1
            [bapak] => Irfan
            [ibu] => Istiqomah
            [bayi_lahir_ID] => 3
            [nama_bayi] => Aisyah Qotrun Nada
            [tgl_lahir] => 2015-04-02
            [meninggal_ID] =>
            [bayi_ID] =>
            [tgl_mati] =>
        )

)

Nah saya ingin jadikan hasil array diatas menjadi seperti gambar di bawah ini mas, bagaimana ya logikanya :

avatar irfanmyj
@irfanmyj

32 Kontribusi 0 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban