コード例 #1
0
ファイル: class.User.php プロジェクト: koninka/Hackathon
 public function SetSelectValues()
 {
     if ($this->TryToApplyUsualScheme()) {
         return;
     }
     $this->CheckSearch();
     $fields = array();
     switch ($this->samplingScheme) {
         case static::REGISTRATION_CHECK_SCHEME:
             $fields = SQL::PrepareFieldsForSelect(static::TABLE, [$this->idField, $this->GetFieldByName(static::LOGIN_FLD)]);
             break;
         case static::LOGIN_SCHEME:
             $fields = SQL::PrepareFieldsForSelect(static::TABLE, array($this->idField, $this->GetFieldByName(static::PASS_FLD), $this->GetFieldByName(static::SALT_FLD)));
             break;
         case static::PROFILE_INFO_SCHEME:
             $fields = SQL::PrepareFieldsForSelect(static::TABLE, [$this->idField, $this->GetFieldByName(static::NAME_FLD), $this->GetFieldByName(static::SURNAME_FLD), $this->GetFieldByName(static::PHONE_FLD), $this->GetFieldByName(static::ROOM_FLD), $this->GetFieldByName(static::DESCRIPTION_FLD), $this->GetFieldByName(static::REGISTER_DATE_FLD), $this->GetFieldByName(static::LAST_UPDATE_FLD), $this->GetFieldByName(static::PROFILE_VIEWS_FLD)]);
             $fields[] = ImageWithFlagSelectSQL(static::TABLE, $this->GetFieldByName(static::PHOTO_FLD));
             $fields[] = sprintf("(SELECT get_user_ad_amount_by_id(%s)) as ad_amount", $this->accSelf ? SQL::ToTblNm(Session::TABLE, Session::USER_FLD) : SQL::ToTblNm(static::TABLE, static::ID_FLD));
             break;
         case static::EXTRA_DATA_SCHEME:
             $fields = SQL::PrepareFieldsForSelect(static::TABLE, [$this->GetFieldByName(static::DESCRIPTION_FLD)]);
             break;
         case static::CONTACT_INFO_SCHEME:
             $fields = SQL::PrepareFieldsForSelect(static::TABLE, [$this->GetFieldByName(static::ROOM_FLD), $this->GetFieldByName(static::PHONE_FLD)]);
             break;
         case static::NAME_INFO_SCHEME:
             $fields = SQL::PrepareFieldsForSelect(static::TABLE, [$this->GetFieldByName(static::NAME_FLD), $this->GetFieldByName(static::SURNAME_FLD)]);
             break;
     }
     $this->selectFields = SQL::GetListFieldsForSelect($fields);
 }
コード例 #2
0
ファイル: class.Place.php プロジェクト: koninka/Hackathon
 public function SetSelectValues()
 {
     $fields = array();
     $this->CheckSearch();
     switch ($this->samplingScheme) {
         case static::INIT_SCHEME:
             $fields = SQL::PrepareFieldsForSelect(static::TABLE, [$this->idField, $this->GetFieldByName(static::NUMBER_FLD), $this->GetFieldByName(static::POLYGON_FLD), $this->GetFieldByName(static::TYPE_FLD)]);
             $this->initFields = $fields;
             $this->search->AddClause(CCond(CF(static::TABLE, $this->GetFieldByName(static::FLOOR_FLD)), CVP($this->GetFieldByName(static::FLOOR_FLD)->GetValue()), cAND))->AddClause(CCond(CF(static::TABLE, $this->GetFieldByName(static::HOSTEL_FLD)), CVP($this->GetFieldByName(static::HOSTEL_FLD)->GetValue()), cAND, opEQ));
             break;
         case static::AVAILABLE_SCHEME:
             // SELECT
             //    places.id  as places_id,
             //    places.number  as places_number,
             //    places.polygon  as places_polygon,
             //    places.place_type  as places_place_type
             // FROM places
             // WHERE
             //    places.floor = 1 AND
             //    (
             //       (
             //          places.place_type = 1 AND
             //          places.number = (SELECT users.room FROM users INNER JOIN sessions ON sessions.user_id = users.id WHERE sessions.sid = '153382469192f1')
             //       )
             //       OR places.place_type <> 1
             //    )
             $fields = $this->initFields;
             global $_user, $_session;
             $this->search->AddClause(CCond(CF(static::TABLE, $this->GetFieldByName(static::TYPE_FLD)), CVP(1), cAND, opEQ, '(('))->AddClause(CCond(CF(static::TABLE, $this->GetFieldByName(static::NUMBER_FLD)), CVS('(' . SQL::SimpleQuerySelect($_user->ToTblNm(User::ROOM_FLD), sprintf('%s %s', User::TABLE, SQL::MakeJoin(User::TABLE, [Session::TABLE => [null, [User::ID_FLD, Session::USER_FLD]]])), new Clause(CCond(CF(Session::TABLE, $_session->GetFieldByName(Session::SID_FLD)), CVS(sprintf("'%s'", $_SESSION['sid']))))) . ')'), cAND, opEQ, null, ')'))->AddClause(CCond(CF(static::TABLE, $this->GetFieldByName(static::TYPE_FLD)), CVP(1), cOR, opNE, null, ')'));
             break;
     }
     $this->selectFields = SQL::GetListFieldsForSelect($fields);
 }
コード例 #3
0
ファイル: class.Session.php プロジェクト: koninka/Hackathon
 public function GetBySID($sid)
 {
     $this->CheckSearch();
     $this->selectFields = SQL::GetListFieldsForSelect(SQL::PrepareFieldsForSelect(static::TABLE, [$this->idField, $this->GetFieldByName(static::USER_FLD)]));
     $this->search->AddClause(CCond(CF(static::TABLE, $this->GetFieldByName(static::SID_FLD)), CVP($sid), cAND));
     $result = $this->GetPart();
     $this->search->RemoveClause();
     return $result;
 }
コード例 #4
0
ファイル: class.Admin.php プロジェクト: koninka/Hackathon
 public function SetSelectValues()
 {
     $this->selectFields = SQL::GetListFieldsForSelect(SQL::PrepareFieldsForSelect(static::TABLE, array($this->idField, $this->GetFieldByName(static::LOGIN_FLD))));
 }
コード例 #5
0
ファイル: class.Entity.php プロジェクト: koninka/Hackathon
 public function SetSelectValues()
 {
     if ($this->samplingScheme == static::USUAL_SCHEME) {
         $this->selectFields = SQL::GetListFieldsForSelect(SQL::PrepareFieldsForSelect(static::TABLE, $this->fields));
     }
 }
コード例 #6
0
ファイル: class.Event.php プロジェクト: koninka/Hackathon
 private function GenQueryForList($user_id, $limit, $start = 0)
 {
     global $_user, $_place;
     $fields = SQL::GetListFieldsForSelect(array_merge(SQL::PrepareFieldsForSelect(static::TABLE, [$this->idField, $this->GetFieldByName(static::HEAD_FLD), $this->GetFieldByName(static::CREATION_DATE_FLD), $this->GetFieldByName(static::DUE_DATE_FLD), $this->GetFieldByName(static::TYPE_FLD), $this->GetFieldByName(static::DESCRIPTION_FLD)]), SQL::PrepareFieldsForSelect(User::TABLE, [$_user->idField, $_user->GetFieldByName(User::NAME_FLD), $_user->GetFieldByName(User::SURNAME_FLD), $_user->GetFieldByName(User::PHOTO_FLD)]), SQL::PrepareFieldsForSelect(Place::TABLE, [$_place->GetFieldByName(Place::TYPE_FLD), $_place->GetFieldByName(Place::NUMBER_FLD)])));
     return sprintf('SELECT %s FROM %s %s WHERE %s = %s %s ORDER BY %s DESC LIMIT %d, %d', $fields, static::TABLE, SQL::MakeJoin(static::TABLE, [User::TABLE => [null, [static::OWNER_FLD, User::ID_FLD]], Place::TABLE => [null, [static::PLACE_FLD, Place::ID_FLD]]]), $this->ToTblNm(static::TYPE_FLD), '%d', !empty($user_id) ? sprintf('AND %s = ?', $_user->ToTblNm(User::ID_FLD)) : '', $this->ToTblNm(static::CREATION_DATE_FLD), $start, $limit);
 }