【发布时间】:2015-12-08 12:27:59
【问题描述】:
我想根据用户选择的年份和月份来选择数据。但结果没有显示正确的输出。它只是显示数据库中所有数据的列表。
谁能帮我修复我的代码
查看
<div class="large-3 columns ">
<?php echo form_open("announcement/announcement_result");?>
<?php echo form_dropdown('m', $m, set_value('m'), 'id="m"'); ?>
<?php echo form_dropdown('q', $q, set_value('q'), 'id="q"'); ?>
<?php echo form_submit('search', 'SEARCH', 'class="button expand"'); ?>
<?php echo form_close(); ?>
</div>
控制器
function announcement_list()
{
$q = '';
$data['q'] = $q;
$this->data['q'] = array(
'' => ' Select Year',);
for ($i = 0; $i < 10; $i++)
{
$date = date('Y') - $i;
$data['q'][$date] = $date;
}
$m = '';
$data['m'] = $m;
$data['m'] = array(
'' => 'Select Month',
);
for ($m = 1; $m <= 12; $m++) {
$month = date("F", mktime(0, 0, 0, $m));
$data['m'][$month] = $month;
}
$data['results'] = $this->news_model->get_announcement_list($config['per_page'], $page);
}
public function announcement_result($q='default', $m='default')
{
if ($q == '') $q = $this->input->post('q');
$this->data['q'] = $q;
if ($q == '') redirect(base_url().'announcement/announcement_list');
$q = '';
$data['q'] = $q;
$this->data['q'] = array(
'' => ' Select Year',);
for ($i = 0; $i < 10; $i++)
{
$date = date('Y') - $i;
$data['q'][$date] = $date;
}
$m = '';
$data['m'] = $m;
$data['m'] = array(
'' => 'Select Month',
);
for ($m = 1; $m <= 12; $m++) {
$month = date("F", mktime(0, 0, 0, $m));
$data['m'][$month] = $month;
}
$data['results'] = $this->news_model->get_results($m, $q, $limit=6, $offset=0);
}
型号
function get_results($m ='default', $q='default', $limit, $offset)
{
$sql = "SELECT *
FROM ArkibBerita
WHERE code='PENGUMUMAN' AND Enable = 'Y' AND Lang ='EN' AND BeritaDate LIKE '%$q%'
ORDER BY position ASC
OFFSET {$offset} ROWS
FETCH NEXT {$limit} ROWS ONlY";
$query = $this->db->query($sql);
return $query->result();
}
【问题讨论】:
-
而不是 BeritaDate LIKE '%$q%' 使用 BeritaDate LIKE '$q%'
-
@saurabhkamble 我目前的结果是它显示了数据库中所有公告的列表,这些公告不遵循用户选择的输入。对于我想要的,查看页面将显示所有公告的列表,搜索后,它只会显示基于年份和月份的数据。现在,我的问题是搜索结果不起作用。
标签: php sql-server codeigniter date