[英]Passing Variable in where clause inside MySQL queries PHP CodeIgniter
I use codeigniter version 2. 我使用codeigniter版本2。
How can I pass the $idCabang and $tahun from where clause inside the query? 如何在查询中的where子句中传递$ idCabang和$ tahun?
public function getListPendapatan($idCabang,$tahun)
{
$idCabang=$this->input->post('id_cabang');
$tahun=$this->input->post('tahun');
$query = '
SELECT `a`.`NAMA_BULAN` AS `Bulan`,
CASE WHEN `b`.`TOTAL_STLH_DISC` IS NULL
THEN 0
ELSE `b`.`TOTAL_STLH_DISC`
END AS `Total_Pendapatan`
FROM `tbl_bulan` AS `a`
LEFT JOIN (
SELECT MONTH(`tbl_transaksi_jual`.`TGL_TRANSAKSI`) AS `TGL_TRANSAKSI` , SUM(`tbl_transaksi_jual`.`TOTAL_STLH_DISC`) AS `TOTAL_STLH_DISC`
FROM `tbl_transaksi_jual`
WHERE `tbl_transaksi_jual`.`ID_CABANG`="'.$idCabang.'" AND
YEAR(`tbl_transaksi_jual`.`TGL_TRANSAKSI`)= "'.$tahun.'"
GROUP BY MONTH(`tbl_transaksi_jual`.`TGL_TRANSAKSI`)
) AS `b` ON `a`.ID_BULAN = `b`.`TGL_TRANSAKSI`
ORDER BY `a`.ID_BULAN ASC';
$result = $this->db->query($query, '');
if($result -> num_rows()>0)
{
return $result->result();
}
else
{
return false;
}
}
It didn't works. 它没有用。 Why ?
为什么呢
I want to make an input variable in where clause. 我想在where子句中输入变量。
Replace the concatenations for the interrogations and put an array in $this->db->query()... 替换查询的串联并将数组放入$ this-> db-> query()...
Do this: 做这个:
$query = '
SELECT `a`.`NAMA_BULAN` AS `Bulan`,
CASE WHEN `b`.`TOTAL_STLH_DISC` IS NULL
THEN 0
ELSE `b`.`TOTAL_STLH_DISC`
END AS `Total_Pendapatan`
FROM `tbl_bulan` AS `a`
LEFT JOIN (
SELECT MONTH(`tbl_transaksi_jual`.`TGL_TRANSAKSI`) AS `TGL_TRANSAKSI` , SUM(`tbl_transaksi_jual`.`TOTAL_STLH_DISC`) AS `TOTAL_STLH_DISC`
FROM `tbl_transaksi_jual`
WHERE `tbl_transaksi_jual`.`ID_CABANG`= ? AND
YEAR(`tbl_transaksi_jual`.`TGL_TRANSAKSI`)= ?
GROUP BY MONTH(`tbl_transaksi_jual`.`TGL_TRANSAKSI`)
) AS `b` ON `a`.ID_BULAN = `b`.`TGL_TRANSAKSI`
ORDER BY `a`.ID_BULAN ASC';
$result = $this->db->query($query, array($idCabang, $tahun));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.