データベース アプリケーションに codeigniter を使用しています。codeigniter データベース クラスのカスタム クエリに get_where を使用できるかどうかはわかりません。
これは私のクエリです
$this->db->query("select model, varient, (select color from mtbl_colors where mtbl_colors.colorid=mtbl_vehicles.colorid) as color from mtbl_vehicles");
where句を使用して上記をフィルタリングしたい場合は、クエリを次のように使用しています
function getVehicles($model='',$varient='')
{
if($model!='')
{
$q=$this->db->query("select model,varient,(select color from mtbl_colors where
mtbl_colors.colorid=mtbl_vehicles.colorid) as color from mtbl_vehicles
where model='$model'")->result();
return $q;
}
elseif($varient!='')
{
$q=$this->db->query("select model,varient,(select color from mtbl_colors where
mtbl_colors.colorid=mtbl_vehicles.colorid) as color from mtbl_vehicles
where varient='$varient'")->result();
return $q;
}
}
これは単なる例であり、where 条件ごとにすべての条件を記述する必要があります。そのため、現在使用しているよりも簡単に複数の条件を達成できる codeigniter の何かが欠けている可能性があります。
編集::::
@Yanからの提案の後、次のように試しました
function getVehicles($where_clause='',$where_value='') {
$sql = "select model,varient,(select color from mtbl_colors where
mtbl_colors.colorid=mtbl_vehicles.colorid) as color from mtbl_vehicles";
$where_clause=array("varient", "model", "colorid");
$where_value=array("MAGNA 1.4", "SANTRO", "3")
if (!empty($where_clause) && !empty($where_value)) {
$sql .= " where $where_clause = ?";
return $this->db->query($sql, $where_value)->result();
}
return false;
}
「無効な列値 Aarray」というデータベース エラーを受け取りました
私の意図は、フィルターオプションに従って結果を生成するために複数の条件を実装することでした。