内容在 CodeIgniter 日历中不可见
Posted
技术标签:
【中文标题】内容在 CodeIgniter 日历中不可见【英文标题】:Content is not visible in CodeIgniter calendar 【发布时间】:2013-05-14 13:31:21 【问题描述】:我可以使用 CodeIgniter 将数据插入数据库,也可以从数据库中获取数据,但问题是我无法获取日期 1-9 的数据(数据存在于数据库中)。 9号之后,数据检索成功。
控制器:
function display($year=null,$month=null)
if (!$year)
$year = date('Y');
if (!$month)
$month = date('m');
$this->load->model('Calendar_model');
if ($day = $this->input->post('day'))
$this->Calendar_model->add_calendar_data("$year-$month-$day",$this->input->post('data')
);
$this->load->model('calendar_model');
$data['calendar']=$this->calendar_model->generate($year,$month);
$data['viewName']=('Student/s_calendar');
$this->load->view('Student/template',$data);
型号:
function get_cal_data($year,$month)
$query=$this->db->select('date,data')->from('student_calender')->like('date',"$year-$month")->get();
$cal_data=array();
foreach($query->result() as $row)
$cal_data[substr($row->date,8,2)]=$row->data;
return $cal_data;
【问题讨论】:
【参考方案1】:将此函数用于您的日历数据,codeignitor 只选择超过 9 的值,因为它会将 html 页面中的两个字符与数据库中的两个字符进行比较。任何低于 10 的数字都不匹配,因为在您的数据库中,它会将低于 10 的任何一天保存为零。用这个
function get_calender_data($year,$month)
$query = $this->db->select('date, data')->from('calendar')
->like('date',"$year-$month",'after')->get();
$cal_data = array();
foreach ($query->result() as $row)
if(substr($row->date,8,1)==0)
$cal_data[substr($row->date,9,1)] = $row->data;
else
$cal_data[substr($row->date,8,2)] = $row->data;
return $cal_data;
【讨论】:
【参考方案2】:我通过zend框架遇到了同样的问题,最后我明白了mysql中的数据是这种格式的:
YYYY-MM-DD HH:ii:ss
我的查询是这种格式:
YYYY-m-d h:i:s
这意味着例如我有过
2013-01-02 13:02:30
在数据库中,我搜索了之间的时间
2013-1-2 13:2:30 and 2013-1-3 13:2:30
这给了我错误的答案。 使用 vardump 并查看您的年份和月份值!
【讨论】:
rahatprojects.hostei.com/Main/index.php/Student/Mycal/display 访问此链接并查看实际问题..在上面的站点中,我刚刚测试了数据存在于数据库中..以上是关于内容在 CodeIgniter 日历中不可见的主要内容,如果未能解决你的问题,请参考以下文章