示例#1
0
 /**
  * Build an SQL 'where' fragment for timestamp-based sorting from a max_id
  * parameter, matching notices posted before the given one (inclusive), and
  * if necessary add it to the data object's query.
  *
  * @param DB_DataObject $obj
  * @param int $id
  * @param string $idField
  * @param string $createdField
  * @return mixed string or false if no match
  */
 public static function addWhereMaxId(DB_DataObject $obj, $id, $idField = 'id', $createdField = 'created')
 {
     $max = self::whereMaxId($id, $idField, $createdField);
     if ($max) {
         $obj->whereAdd($max);
     }
 }
示例#2
0
文件: db.php 项目: demental/m
 /**
  * Prepares a select query, given a series of tags to exclude.
  * @param $tags mixed. Can be a tag table recordset or an array of tag records
  * @param DB_DataObject $obj the recordset on which the select query will be executed
  */
 public function getWithoutTags($tags, DB_DataObject $obj)
 {
     $tagsdo = array();
     if (!is_array($tags) || $tags->N) {
         $tags = array($tags);
     }
     foreach ($tags as $atag) {
         if (!($atag = $this->_getTagFromTag($atag))) {
             continue;
         }
         $tagsdo[] = $atag;
     }
     foreach ($tagsdo as $tag) {
         $t = DB_DataObject::factory('tag_record');
         $t->whereAdd('extags_' . $tag->id . '.tag_id = ' . $tag->id);
         $t->tagged_table = $obj->tableName();
         $obj->whereAdd('extags_' . $tag->id . '.id is null');
         $t->selectAdd();
         $t->selectAdd('extags_' . $tag->id . '.tag_id');
         $obj->joinAdd(clone $t, array('joinType' => 'LEFT', 'joinAs' => 'extags_' . $tag->id, 'useWhereAsOn' => true));
     }
     return;
 }