Postingan lainnya
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...
4 Jawaban:
coba pertanyaannya lebih spesifik mas, ngga bisanya bagian data yang mana? kode yang udah dicoba untuk itu seperti apa?
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();
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
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 :