phpcms v9多表查询_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > phpcms v9多表查询

phpcms v9多表查询

 2012/7/9 21:23:50  yanm7788  程序员俱乐部  我要评论(0)
  • 摘要:在用phpcms做二次开发的时候就难免不用到多表查询。phpcms提供了一个很好标签给我们合用,那就是get标签,具体用法如下。{pc:getsql="SELECTtitle,urlFROMv9_newswherecatid=9andstatus=99orderbyupdatetimedesc"start="0"num="4"return="v"}get标签可以直接写sql查询语句,这个可以根据需求去自由发挥。start为开始数据,num是返回几条数据。return为返回的数据
  • 标签:PHP CMS 多表查询
    在用phpcms做二次开发的时候就难免不用到多表查询。phpcms提供了一个很好标签给我们合用,那就是get标签,具体用法如下。
   
{pc:get sql="SELECT title,url FROM v9_news where catid=9 and status=99 order by updatetime desc" start="0" num="4" return="v"}

    get标签可以直接写sql查询语句,这个可以根据需求去自由发挥。start为开始数据,num是返回几条数据。return 为返回的数据。
    但如果要在程序中实现多表查询怎么办,那就只接可以用$this->db->query($sql)来取得相应的数据。
    要是碰到多表的分页查询用query就满足不了相应的功能了,我的做法是改libs/classes/model.class.php,重写listinfo()方法。
       
/**
	 * 查询多条数据并分页
	 * @param $where
	 * @param $order
	 * @param $page
	 * @param $pagesize
	 * @return unknown_type
	 */
	final public function mylistinfo($table='',$where = '', $order = '', $page = 1, $pagesize = 20, $key='', $setpages = 10,$urlrule = '',$array = array()) {
		$where = to_sqls($where);
		$this->number = $this->count($where);
		$page = max(intval($page), 1);
		$offset = $pagesize*($page-1);
		$this->pages = pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);
		$array = array();
		if ($this->number > 0) {
			return $this->myselect($table,$where, '*', "$offset, $pagesize", $order, '', $key);
		} else {
			return array();
		}
	}
        /**
	 * 执行sql查询
	 * @param $where 		查询条件[例`name`='$name']
	 * @param $data 		需要查询的字段值[例`name`,`gender`,`birthday`]
	 * @param $limit 		返回结果范围[例:10或10,10 默认为空]
	 * @param $order 		排序方式	[默认按数据库默认方式排序]
	 * @param $group 		分组方式	[默认为空]
	 * @param $key          返回数组按键名排序
	 * @return array		查询结果集数组
	 */
	final public function myselect($table='',$where = '', $data = '*', $limit = '', $order = '', $group = '', $key='') {
		if (is_array($where)) $where = $this->sqls($where);
		return $this->db->select($data, $table, $where, $limit, $order, $group, $key);
	}

如上所示,与系统自带的就是多传了个$table,这样我们可以把要查询的多表写成view再传进来就可以实现相应的功能了
发表评论
用户名: 匿名