-
Notifications
You must be signed in to change notification settings - Fork 0
/
criteria.php
67 lines (55 loc) · 2.42 KB
/
criteria.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
<?php
// carrega as classes necessárias
require_once 'classes/Expression.php';
require_once 'classes/Criteria.php';
require_once 'classes/Filter.php';
require_once 'classes/SQLInstrucion.php';
require_once 'classes/SQLSelect.php';
// Critério simples com OR, e filtros com valores inteiros
$criteria = new Criteria;
$criteria->add(new Filter('idade', '<', 16), Expression::OR_OPERATOR);
$criteria->add(new Filter('idade', '>', 60), Expression::OR_OPERATOR);
print $criteria->dump() . "<br>\n";
// Critério simples com AND, e filtros com vetores de inteiros
$criteria = new Criteria;
$criteria->add(new Filter('idade','IN', array(24,25,26)));
$criteria->add(new Filter('idade','NOT IN', array(10)));
print $criteria->dump() . "<br>\n";
// Critério simples com OR, e filtros com Like
$criteria = new Criteria;
$criteria->add(new Filter('nome', 'like', 'pedro%'), Expression::OR_OPERATOR);
$criteria->add(new Filter('nome', 'like', 'maria%'), Expression::OR_OPERATOR);
print $criteria->dump() . "<br>\n";
// Critério simples com AND e filtros usando IS NOT NULL e "="
$criteria = new Criteria;
$criteria->add(new Filter('telefone', 'IS NOT', NULL));
$criteria->add(new Filter('sexo', '=', 'F'));
print $criteria->dump() . "<br>\n";
// Critério simples com AND, e filtros usando IN/NOT IN sobre vetores de strings
$criteria = new Criteria;
$criteria->add(new Filter('UF', 'IN', array('RS', 'SC', 'PR')));
$criteria->add(new Filter('UF', 'NOT IN', array('AC', 'PI')));
print $criteria->dump() . "<br>\n";
// Critério simples que será composto
$criteria1 = new Criteria;
$criteria1->add(new Filter('sexo', '= ', 'F'));
$criteria1->add(new Filter('idade', '>', '18'));
// Critério simples que será composto
$criteria2 = new Criteria;
$criteria2->add(new Filter('sexo', '= ', 'M'));
$criteria2->add(new Filter('idade', '<', '16'));
// Formação de critério composto
$criteria = new Criteria;
$criteria->add($criteria1, Expression::OR_OPERATOR);
$criteria->add($criteria2, Expression::OR_OPERATOR);
//print $criteria->dump() . "<br>\n";
$criteria->setProperty('limit', 10);
$criteria->setProperty('offset', 0);
$criteria->setProperty('order', 'nome');
$consulta = new SQLSelect();
$consulta->setEntity('TabelaDadosAbertos');
$consulta->addColumn('DISTINCT (nome)');
$consulta->addColumn('quantoRoba');
$consulta->addColumn('ECorrupto');
$consulta->setCriteria($criteria);
echo $consulta->getInstruction();