我正在为我的网站使用 phpmyadmin 3.5.2、codeigniter 2.1,
当我尝试加载在确切日期添加的帖子时,或者当我只想显示该帖子的日期/时间时,我的问题就出现了。
表结构
CREATE TABLE IF NOT EXISTS `posts` (
`post_id` int(11) NOT NULL AUTO_INCREMENT,
`patient_id` int(11) NOT NULL,
`worker_id` int(11) NOT NULL,
`time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`stats` varchar(20) COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`post_id`),
KEY `worker_id` (`worker_id`,`patient_id`),
KEY `patient_id` (`patient_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=2 ;
我的问题是操纵这个“时间”列,因为我需要显示例如
1) 显示今天帖子的表格(使用
Select * from posts where date(`time`) = date(NOW())
2)表格显示今天的帖子,但时间列仅返回(时间),这就是我的主要问题,好像我这样做了
select time from posts
返回日期和时间,我只想从该列返回时间,但仍然可以使用
where date('time') =date(now()) condition !.
那么有没有更好的方法来做到这一点?即使我可以在 php 中做到这一点,我仍然可以!
或者如果我将时间和日期分成 2 个不同的列会更好吗?
--------问题的第二部分是针对codeigniter的----------
模型
$this->db->select('patients.name,workers.dr_name,time(posts.time),posts.stats');
$this->db->from('posts');
$this->db->join('workers','posts.worker_id=workers.worker_id','left');
$this->db->join('patients','posts.patient_id=patients.patient_id','left');
$this->db->where('date(`time`) = date(NOW())');
return $this->db->get();
控制器
$this->load->model('Posts_model');
$q=$this->Visits_model->allvisits;
$this->load->library('table');
$this->load->view('welcome_message');
$qq=$q->result_array();
$qq=array('patient','Doctor','Time','Stats');
$this->table->set_heading($qq);
$this->table->set_caption('Todays Posts');
echo $this->table->generate($q);
如何删除模型中的最后一个条件(日期=现在)并使用 php 对此进行排序?我必须循环结果吗?或者有更清洁的方法吗?谢谢