-
Notifications
You must be signed in to change notification settings - Fork 0
/
data-condition-helper.php
107 lines (89 loc) · 2.61 KB
/
data-condition-helper.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?php
require_once(dirname(__FILE__) . '/data-helper.php');
abstract class DataConditionHelper extends DataHelper {
protected $conditions = '';
//condition
protected function addCondition($condition) {
if ($this->conditions) {
$this->conditions .= ' AND ';
}
$this->conditions .= $condition;
}
public function addConditionGreaterThan($field, $value) {
$this->addCondition(
self::filterKeyword($field) . ' > ' . self::filterKeyword($value)
);
}
public function addConditionGreaterThanEqual($field, $value) {
$this->addCondition(
self::filterKeyword($field) . ' >= ' . self::filterKeyword($value)
);
}
public function addConditionLessThan($field, $value) {
$this->addCondition(
self::filterKeyword($field) . ' < ' . self::filterKeyword($value)
);
}
public function addConditionLessThanEqual($field, $value) {
$this->addCondition(
self::filterKeyword($field) . ' <= ' . self::filterKeyword($value)
);
}
public function addConditionEqual($field, $value) {
$this->addCondition(
self::filterKeyword($field) . ' = ' . self::filterKeyword($value)
);
}
public function addConditionEqualString($field, $value) {
$this->addCondition(
self::filterKeyword($field) . ' = ' . self::singleQuote(self::filterString($value))
);
}
public function addConditionContains($field, $value) {
$this->addCondition(
self::filterKeyword($field) . ' LIKE ' . self::singleQuote("%" . self::filterString($value) . "%")
);
}
public function addConditionStartsWith($field, $value) {
$this->addCondition(
self::filterKeyword($field) . ' LIKE ' . self::singleQuote(self::filterString($value) . "%")
);
}
public function addConditionEndsWith($field, $value) {
$this->addCondition(
self::filterKeyword($field) . ' LIKE ' . self::singleQuote("%" . self::filterString($value))
);
}
public function addConditionInKeywords($field, $values) {
$strValue = '';
if (is_array($values)) {
foreach ($values as $value) {
if ($strValue) {
$strValue .= ',';
}
$strValue .= self::filterKeyword($value);
}
} else {
$strValue .= self::filterKeyword($values);
}
$this->addCondition(
self::filterKeyword($field) . ' IN (' . $strValue . ')'
);
}
public function addConditionInStrings($field, $values) {
$strValue = '';
if (is_array($values)) {
foreach ($values as $value) {
if ($strValue) {
$strValue .= ',';
}
$strValue .= self::singleQuote(self::filterString($value));
}
} else {
$strValue .= self::singleQuote(self::filterString($values));
}
$this->addCondition(
self::filterKeyword($field) . ' IN (' . $strValue . ')'
);
}
}