|
发表于 2008-5-8 19:48:33
|
显示全部楼层
PHP复制代码
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class MY_Model extends Model {
function MY_Model (){
//parent::Controller();
parent ::Model();
}
function getPagination (){
}
function getPagiItems ($limit , $offset , $conditions = array() , $order = ""){
$offset = $offset + $limit;
//$this->db->order_by("recordtime", "desc");
//$query = $this->db->get("article");
$query = $this->db->query("select top $limit * from (select top $offset * from $this->tableName ".$this->generateConditions($conditions)." ".$this->getOrderString($order)." ) ".$this->getOppsiteOrder($order));
//数组是顺序的颠倒的,需要换一下。
return array_reverse($query->result());
}
function getPagiCount ($conditions){
$query = $this->db->query("select count(*) as numrows from $this->tableName ".$this->generateConditions($conditions));
if ($query->num_rows() == 0)
{
return '0';
}
$row = $query->row();
return $row->numrows;
}
function pagiOrderFlag ($order){
if(strpos($order , "desc") === false){
return true;
}else{
return false;
}
}
function getOrderWithnoDirection ($order){
//TODO maybe use regex should be better
if($this->pagiOrderFlag($order)){
return str_replace(" asc" , "" ,$order);
}else{
return str_replace(" desc" , "" ,$order);
}
}
function getOppsiteOrder ($order){
if($order == ""){
return "";
}
$flag = $this->pagiOrderFlag($order);
$order = $this->getOrderWithnoDirection($order);
if($flag){
$order = $order." desc";
}
return "order by ".$order;
}
function getOrderString ($order){
if($order == ""){
return "";
}
return "order by ".$order;
}
function generateConditions ($conditions){
$ret = "";
$connect = " and ";
foreach(array_keys($conditions) as $key){
if(is_array($conditions[$key])){
if(sizeof($conditions[$key]) == 3){
$connect = " ".$conditions[$key][2]." ";
}
$operate = " ".$conditions[$key][0]." ";
$conditions[$key] = $conditions[$key][1];
}else{
$operate = " = ";
}
if($this->is_date($conditions[$key])){
$value = $conditions[$key];
}elseif(is_string($conditions[$key])){
$value = "'".str_replace("'" , "''" , $conditions[$key])."'";
}else{
$value = $conditions[$key];
}
$cond = $key.$operate.$value;
if($ret == ""){
$ret = $cond;
}else{
$ret = $ret.$connect.$cond;
$connect = " and ";
}
}
if($ret == ""){
return $ret;
}else{
return "where ".$ret;
}
}
function is_date ($date){
//echo "$date\n";
//return ereg("\d" , $date);
//$subject = "#1233-23-23#";
$pattern = '/^#\d{4}-\d{2}-\d{2}#$/';
return preg_match($pattern , $date);
//echo "1";
}
}
?>
复制代码 |
|