当前位置: 代码迷 >> PHP >> 帮忙看下如何把下面代码调用每月的数据改成调用所有数据或某年份的数据
  详细解决方案

帮忙看下如何把下面代码调用每月的数据改成调用所有数据或某年份的数据

热度:47   发布时间:2016-04-28 17:03:44.0
帮忙看下怎么把下面代码调用每月的数据改成调用所有数据或某年份的数据
	//往期团购列表
public function expired()
{
$partitions = D("Goods")->getGoodsPartitions();
$this->assign("partitions",$partitions);

$site_name = trim($_REQUEST['site_name']);
$cate_id = intval($_REQUEST['cate_id']);
$name = trim($_REQUEST['name']);
$status = trim($_REQUEST['status']);
$city = trim($_REQUEST['city']);
$end_time = intval($_REQUEST['end_time']);
if(isset($partitions[$end_time]))
$partition = $partitions[$end_time];
else
{
$partition = current($partitions);
$end_time = $partition['min_date'];
}
$this->assign("end_time",$end_time);

$parameter = array();
$parameter['end_time'] = $end_time;

$is_empty = false;
$where = '';

if(!empty($site_name))
{
$this->assign("site_name",$site_name);
$parameter['site_name'] = $site_name;
$ids = array();
$site_ids = D('Site')->where("name like '%$site_name%'")->field('id')->findAll();
foreach($site_ids as $site)
{
$ids[] = $site['id'];
}

if(count($ids) > 0)
$where .= ' and gk.site_id in ('.implode(',', $ids).')';
else
$is_empty = true;
}

if(!empty($cate_id))
{
$this->assign("cate_id",$cate_id);
$where.=" and gk.cate_id = $cate_id";
$parameter['cate_id'] = $cate_id;
}

if(!empty($city))
{
$this->assign("city",$city);
$where.=" and gk.city = '$city'";
$parameter['city'] = $city;
}

if(!empty($name))
{
$name_query = clearSymbol($name);
if(!empty($name_query))
{
$name_query = segmentToUnicode($name_query,'+');
$match_sql = ' inner join '.C("DB_PREFIX").'goods_match as gm ON gm.id = gk.id ';
$where.=" AND MATCH (gm.content) AGAINST ('$name_query' IN BOOLEAN MODE)";
$this->assign("name",$name);
$parameter['name'] = $name;
}
}

if($status != "" && $status >= 0)
{
$where.=" and g.status = $status";
$this->assign("status",$status);
$parameter['status'] = $status;
}
else
{
$this->assign("status",-1);
}

if(!$is_empty)
{
$model = M();
$count_str = 'SELECT count(g.id) as gcount
FROM '.C("DB_PREFIX").'goods_key as gk
inner join '.C("DB_PREFIX").'goods as g on g.id = gk.id '.$match_sql.
"where $partition[where] $where ";

$count = $model->query($count_str);
$count = $count[0]['gcount'];

$sql_str = 'SELECT g.id,g.name,g.shop_price,g.city,g.end_time,g.status,g.is_best,g.sort,g.cate_id,g.bought,g.site_name
FROM '.C("DB_PREFIX").'goods_key as gk
inner join '.C("DB_PREFIX").'goods as g on g.id = gk.id  '.$match_sql.
"where $partition[where] $where ";

$voList = $this->_sqlList($model, $sql_str, $count,$parameter, 'id', false);
}
else
$voList = array();

L("FORBID","未审核");
L("NORMAL","已审核");

$group_city_list = D("GroupCity")->where("status=1")->order("sort asc,id asc")->findAll();
$this->assign("group_city_list",$group_city_list);

$goodsCates = D('GoodsCate')-> where("status=1")-> findAll();
$goodsCates = D('GoodsCate')-> toFormatTree($goodsCates,array('name'));
$this->assign("goodsCates",$goodsCates);

$this->display();
}



前台的调用代码是这样的:<select name="end_time" id="end_time">
    <foreach name="partitions" item="partition">
    <option value="{$partition.min_date}" <if condition="$partition['min_date'] eq $end_time">selected</if> >{$partition.date}</value>
    </foreach>
</select> 
他的下拉菜单选择都是每个月的所有过期数据,我要的效果是下拉菜单加一个全部过期数据或每年份的过期数据
------解决思路----------------------
看一下  D("Goods")->getGoodsPartitions(); 这个方法,改一改


等楼下
------解决思路----------------------
$partitions = D("Goods")->getGoodsPartitions();

这个函数长什么样子
  相关解决方案