1 |
<?php |
<?php |
2 |
$basic_logic = "AND"; |
$basic_logic = "AND"; |
3 |
function myCmp($a, $b) { |
function Search($fields, $q1_fields, $q2_fields, $def_field = "") { |
|
if ($a["caption"] == $b["caption"]) return 0; |
|
|
return ($a["caption"] < $b["caption"]) ? -1 : 1; |
|
|
} |
|
|
function Search($fields, $q1_fields, $q2_fields) { |
|
4 |
global $go; |
global $go; |
5 |
$tp = new Smarty(); |
$tp = new Smarty(); |
6 |
$qry_1 = ""; |
$qry_1 = ""; |
38 |
if (${"or_".($i - 1)}) $log = "OR"; |
if (${"or_".($i - 1)}) $log = "OR"; |
39 |
if (count($search) > 0) $search[count($search) - 1]["logic"] = $log; |
if (count($search) > 0) $search[count($search) - 1]["logic"] = $log; |
40 |
array_push($search, array( |
array_push($search, array( |
41 |
"field" => "", |
"field" => $def_field ? $def_field : "", |
42 |
"not" => "", |
"not" => "", |
43 |
"query" => "", |
"query" => "", |
44 |
"logic" => "", |
"logic" => "", |
50 |
$tp->assign("search", $search); |
$tp->assign("search", $search); |
51 |
} else { |
} else { |
52 |
global $field, $query; |
global $field, $query; |
53 |
$tp->assign("field", $field); |
$tp->assign("field", $field?$field:$def_field); |
54 |
$tp->assign("query", MyEscape($query)); |
$tp->assign("query", MyEscape($query)); |
55 |
} |
} |
56 |
if (!$stype) $stype = 0; |
if (!$stype) $stype = 0; |
68 |
$qry3 = array(); |
$qry3 = array(); |
69 |
while (list($k, $v) = each($qry1)) { |
while (list($k, $v) = each($qry1)) { |
70 |
if (!$qry1[$k]) continue; |
if (!$qry1[$k]) continue; |
71 |
if (${"case_".$i}) |
if (${"case_".$i}) $qq = "(".$fields[$field]["dbname"]." $not LIKE '%".$qry1[$k]."%')"; |
72 |
$qq = "(".$fields[$field]["dbname"]." $not LIKE '%".$qry1[$k]."%')"; |
else $qq = "(UPPER(".$fields[$field]["dbname"].") $not LIKE UPPER('%".$qry1[$k]."%'))"; |
|
else |
|
|
$qq = "(UPPER(".$fields[$field]["dbname"].") $not LIKE UPPER('%".$qry1[$k]."%'))"; |
|
73 |
$is_q1 = false; |
$is_q1 = false; |
74 |
for ($i = 0; $i < count($q1_fields); $i++) |
for ($j = 0; $j < count($q1_fields); $j++) |
75 |
if ($q1_fields[$i] == $field) $is_q1 = true; |
if ($q1_fields[$j] == $field) $is_q1 = true; |
76 |
$is_q2 = false; |
$is_q2 = false; |
77 |
for ($i = 0; $i < count($q2_fields); $i++) |
for ($j = 0; $j < count($q2_fields); $j++) |
78 |
if ($q2_fields[$i] == $field) $is_q2 = true; |
if ($q2_fields[$j] == $field) $is_q2 = true; |
79 |
if ($is_q1) $qry2[$k] = $qq; |
if ($is_q1) $qry2[$k] = $qq; |
80 |
if ($is_q2) $qry3[$k] = $qq; |
if ($is_q2) $qry3[$k] = $qq; |
81 |
} |
} |
82 |
$qry1 = implode(" ".${"concat_".$i}." ", $qry2); |
$qry1 = implode(" ".${"concat_".$i}." ", $qry2); |
83 |
if ($qry1) { |
if ($qry1) { |
84 |
if ($logic) $qry .= " $logic "; |
if ($logic) $qry_1 .= " $logic "; |
85 |
$qry_1 .= "($qry1)"; |
$qry_1 .= "($qry1)"; |
86 |
$logic = ${"logic_".$i}; |
$logic = ${"logic_".$i}; |
87 |
} |
} |
114 |
$qry_2 = implode(" ".$basic_logic." ", $q3); |
$qry_2 = implode(" ".$basic_logic." ", $q3); |
115 |
} |
} |
116 |
} |
} |
|
uasort($fields, "myCmp"); |
|
117 |
$flds = array(); |
$flds = array(); |
118 |
while (list($k, $v) = each($fields)) { |
while (list($k, $v) = each($fields)) { |
119 |
array_push($flds, array( |
array_push($flds, array( |