summaryrefslogtreecommitdiff
path: root/ext/dbx/tests/008.phpt
blob: ac3f76fe94f57065bf8dd9a34982174cf8b28e8f (plain)
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
--TEST--
dbx_compare
--SKIPIF--
<?php if (!extension_loaded("dbx")) print("skip"); ?>
--POST--
--GET--
--FILE--
<?php 
include_once("ext/dbx/tests/dbx_test.p");
$sql_statement = "select id, description from tbl where parentid=1 order by id";
$compare_function_1 = "cmp_description_id";
$compare_function_2 = "cmp_description_desc_id";
$compare_function_3 = "cmp_description_id_desc";
$compare_function_4 = "cmp_description_desc_id_desc";
$compare_function_5 = "cmp_description_txt_id";
$compare_function_6 = "cmp_description_number_id";
$dlo = dbx_connect($module, $host, $database, $username, $password);
function cmp_description_id($a, $b) {
    $rv = dbx_compare($a, $b, "description");
    if (!$rv) $rv = dbx_compare($a, $b, "id");
    return $rv;
    }
function cmp_description_desc_id($a, $b) {
    $rv = dbx_compare($a, $b, "description", DBX_CMP_DESC);
    if (!$rv) $rv = dbx_compare($a, $b, "id");
    return $rv;
    }
function cmp_description_id_desc($a, $b) {
    $rv = dbx_compare($a, $b, "description");
    if (!$rv) $rv = dbx_compare($a, $b, "id", DBX_CMP_DESC);
    return $rv;
    }
function cmp_description_desc_id_desc($a, $b) {
    $rv = dbx_compare($a, $b, "description", DBX_CMP_DESC);
    if (!$rv) $rv = dbx_compare($a, $b, "id", DBX_CMP_DESC);
    return $rv;
    }
function cmp_description_txt_id($a, $b) {
    $rv = dbx_compare($a, $b, "description", DBX_CMP_TEXT);
    if (!$rv) $rv = dbx_compare($a, $b, "id");
    return $rv;
    }
function cmp_description_number_id($a, $b) {
    $rv = dbx_compare($a, $b, "description", DBX_CMP_NUMBER);
    if (!$rv) $rv = dbx_compare($a, $b, "id");
    return $rv;
    }
if (!$dlo) {
    print('this won\'t work'."\n");
	}
else {
    $dro = dbx_query($dlo, $sql_statement);
    if (!$dro) {
        print('this won\'t work'."\n");
        }
    for ($i=0; $i<$dro->rows; ++$i) {
        print($dro->data[$i]['id'].".".$dro->data[$i]['description']."\n");
        }
    if (dbx_sort($dro, $compare_function_1)) {
        for ($i=0; $i<$dro->rows; ++$i) {
            print($dro->data[$i]['id'].".".$dro->data[$i]['description']."\n");
            }
        }
    if (dbx_sort($dro, $compare_function_2)) {
        for ($i=0; $i<$dro->rows; ++$i) {
            print($dro->data[$i]['id'].".".$dro->data[$i]['description']."\n");
            }
        }
    if (dbx_sort($dro, $compare_function_3)) {
        for ($i=0; $i<$dro->rows; ++$i) {
            print($dro->data[$i]['id'].".".$dro->data[$i]['description']."\n");
            }
        }
    if (dbx_sort($dro, $compare_function_4)) {
        for ($i=0; $i<$dro->rows; ++$i) {
            print($dro->data[$i]['id'].".".$dro->data[$i]['description']."\n");
            }
        }
    if (dbx_sort($dro, $compare_function_5)) {
        for ($i=0; $i<$dro->rows; ++$i) {
            print($dro->data[$i]['id'].".".$dro->data[$i]['description']."\n");
            }
        }
    if (dbx_sort($dro, $compare_function_6)) {
        for ($i=0; $i<$dro->rows; ++$i) {
            print($dro->data[$i]['id'].".".$dro->data[$i]['description']."\n");
            }
        }
    if (!@dbx_compare($a, $b, "fieldname")) {
        print('wrong parameters: dbx_compare failure works ok'."\n");
        }
    if (!@dbx_compare($a, $b, "fieldname", DBX_CMP_NATIVE, "12many")) {
        print('too many parameters: dbx_compare failure works ok'."\n");
        }
    if (!@dbx_compare($a, $b)) {
        print('too few parameters: dbx_compare failure works ok'."\n");
        }
    dbx_close($dlo);
    }
?>
--EXPECT--
10.abc
20.cba
30.bac
40.100
50.20
60.20
40.100
50.20
60.20
10.abc
30.bac
20.cba
20.cba
30.bac
10.abc
50.20
60.20
40.100
40.100
60.20
50.20
10.abc
30.bac
20.cba
20.cba
30.bac
10.abc
60.20
50.20
40.100
40.100
50.20
60.20
10.abc
30.bac
20.cba
10.0
20.0
30.0
50.20
60.20
40.100
wrong parameters: dbx_compare failure works ok
too many parameters: dbx_compare failure works ok
too few parameters: dbx_compare failure works ok