为什么我的数组(日期和日期之间的sql)是空的?

时间:2015-10-21 17:34:29

标签: php sql codeigniter date

我正在使用Codeigniter 我想在我的数据库中获取两个日期之间的所有日期

我的函数的结果总是一个空数组。
在我的数据库日期是这种格式:2015-10-21

我的模特

public function lireListeAchats($selection = "*", $date_debut, $date_fin, $champs_order = "id", $direction_ordre = "ASC", $nombre_limite = NULL, $debut_limite = NULL){

$conditions = "date_achat BETWEEN $date_debut AND $date_fin";

$retour= $this->db->select($selection)
                    /*à partir de quelle table*/
                    ->from($this->table)
                    /*déterminer des conditions spécifiques*/
                    ->where($conditions)
                    /*déterminer un ordre précis*/
                    ->order_by($champs_order, $direction_ordre)
                    /*déterminer une limite*/
                    ->limit($nombre_limite, $debut_limite)
                    /*obtenir les résultats (va de pair avec result()*/
                    ->get()
                    /*retourner les résultats sous forme de tableau*/
                    ->result_array();

                    return $retour;

}    

$date_debut$date_fin以此格式返回:2015-10-01

2 个答案:

答案 0 :(得分:4)

这是因为$date_debut AND $date_fin,这些变量是字符串。

用引号'$date_debut' AND '$date_fin'

包裹它们

MySQL将2015-10-01解释为2015减去10减去01。

使用CodeIgniter的错误检查:

答案 1 :(得分:0)

你这里有一个错字。它应该是returnretour返回似乎比回溯更好。

public function lireListeAchats($selection = "*", $date_debut, $date_fin, $champs_order = "id", $direction_ordre = "ASC", $nombre_limite = NULL, $debut_limite = NULL){

$conditions = "date_achat BETWEEN $date_debut AND $date_fin";

$return= $this->db->select($selection)
                    /*à partir de quelle table*/
                    ->from($this->table)
                    /*déterminer des conditions spécifiques*/
                    ->where($conditions)
                    /*déterminer un ordre précis*/
                    ->order_by($champs_order, $direction_ordre)
                    /*déterminer une limite*/
                    ->limit($nombre_limite, $debut_limite)
                    /*obtenir les résultats (va de pair avec result()*/
                    ->get()
                    /*retourner les résultats sous forme de tableau*/
                    ->result_array();

                    return $return;