【发布时间】:2020-11-26 15:46:11
【问题描述】:
我想显示所有备件 其中 tb_sparepart.id_jenis = id_jenis 且 tb_sparepart.id_merk = id_merk 且 tb_sparepart.id_merk = 1
id_merk 1 = 意味着所有的merk,但如果我尝试在模型中总是失败。
我试试这个模型:
function GetById($id_kendaraan){
$this->db->select('*');
$this->db->from('tb_kendaraan');
$this->db->where('tb_kendaraan.id_kendaraan',$id_kendaraan);
$query_kendaraan = $this->db->get();
$hasil = false;
if($query_kendaraan->num_rows() > 0)
{
$data_kendaraan = $query_kendaraan->row();
$hasil = [
'tahun_beli' => $data_kendaraan->tahun_beli,
'id_jenis' => $data_kendaraan->id_jenis,
'id_merk' => $data_kendaraan->id_merk,
'spareparts' => [] // empty array, to be filled with spareparts data
];
$this->db->select('*');
$this->db->from('tb_sparepart');
$this->db->where('tb_sparepart.id_jenis', $data_kendaraan->id_jenis);
$query_sparepart = $this->db->get();
foreach ($query_sparepart->result() as $data_sparepart) {
$spareparts = [
'id_sparepart' => $data_sparepart->id_sparepart,
'sparepart' => $data_sparepart->sparepart,
];
array_push($hasil['spareparts'], $spareparts);
}
}
return $hasil;
}
我尝试了这个模型,结果是这样的: 结果是由 id jenis 显示的备件。 但我想显示 id merk 汽车的数据备件和 id merk 为 1 的备件(所有 merk)。
我尝试下一个模型.. 我的模型:
function GetById($id_kendaraan){
$this->db->select('*');
$this->db->from('tb_kendaraan');
$this->db->where('tb_kendaraan.id_kendaraan',$id_kendaraan);
$query_kendaraan = $this->db->get();
$hasil = false;
if($query_kendaraan->num_rows() > 0)
{
$data_kendaraan = $query_kendaraan->row();
$hasil = [
'tahun_beli' => $data_kendaraan->tahun_beli,
'id_jenis' => $data_kendaraan->id_jenis,
'id_merk' => $data_kendaraan->id_merk,
'spareparts' => [] // empty array, to be filled with spareparts data
];
$this->db->select('*');
$this->db->from('tb_sparepart');
$this->db->where('tb_sparepart.id_jenis', $data_kendaraan->id_jenis);
$this->db->where('tb_sparepart.id_merk', $data_kendaraan->id_merk);
$query_sparepart = $this->db->get();
foreach ($query_sparepart->result() as $data_sparepart) {
$spareparts = [
'id_sparepart' => $data_sparepart->id_sparepart,
'sparepart' => $data_sparepart->sparepart,
];
array_push($hasil['spareparts'], $spareparts);
}
}
return $hasil;
}
图片是显示数据备件,其中 id merk = id merk。
我想在 misubishi fuso 展示备件是:
- roda gede sekali (id_merk = 1)
- punya mishubisi (id_merk = 14)
- oli mesin 卡车 (id_merk = 1)
不使用备件 punya hino,因为备件 punya hino 是 id_merk = 11。
示例: 我的 tb_kendaraan
|id_kendaraan|id_jenis|id_merk|
| 1 | 1 | 11 |
| 2 | 1 | 14 |
| 3 | 2 | 15 |
我的 tb_sparepart
|id_sparepart|id_jenis|id_merk|sparepart |
| 1 | 1 | 1 |roda gede sekali |
| 2 | 1 | 14 |punya misubisi |
| 3 | 1 | 1 |oli mesin truck |
| 4 | 1 | 11 |punya hino |
| 5 | 2 | 1 |part motorcyle |
| 6 | 2 | 15 |motorcyle engine |
| 7 | 2 | 16 |motorcyle lamp |
我的意思是 tb_sparepart 中的 id_merk 1 是一个 all merk。
如果我调用 tb_kendaraan.id_kendaraan = 1 备件必须显示为:
- roda gede sekali
- oli mesin 卡车
- 普尼亚日野
如果我调用 tb_kendaraan.id_kendaraan = 2 备件必须显示为:
- roda gede sekali
- punya misubisi
- oli mesin 卡车
如果我调用 tb_kendaraan.id_kendaraan = 3 备件必须显示为:
- 部分摩托车
- 摩托车发动机
谢谢你的帮助
【问题讨论】:
标签: mysql codeigniter select where-clause