--- inc/search.php 2001/10/05 15:10:53 1.8 +++ inc/search.php 2001/10/27 16:54:50 1.9 @@ -49,9 +49,7 @@ $search[count($search) - 1]["logic"] = ""; $tp->assign("search", $search); } else { - global $field, $query; - $tp->assign("field", $field?$field:$def_field); - $tp->assign("query", MyEscape($query, true)); + // Nothing. } if (!$stype) $stype = 0; $tp->assign("stype", $stype); @@ -94,31 +92,45 @@ $i++; } } else { - $q = preg_split('/\s+/', $query); - $q2 = array(); - $q3 = array(); - while (list($k, $v) = each($q)) { - if (!$q[$k]) continue; - $qq = "(UPPER(".$fields[$field]["dbname"].") LIKE '%".MyUpper($q[$k])."%')"; - $is_q1 = false; - for ($i = 0; $i < count($q1_fields); $i++) - if ($q1_fields[$i] == $field) $is_q1 = true; - $is_q2 = false; - for ($i = 0; $i < count($q2_fields); $i++) - if ($q2_fields[$i] == $field) $is_q2 = true; - if ($is_q1) $q2[$k] = $qq; - if ($is_q2) $q3[$k] = $qq; + $qry_1 = array(); + $qry_2 = array(); + reset($fields); + while (list($k, $v) = each($fields)) { + $field = $k; + $var = "query_".$field; global $$var; + $query = $$var; + $q = preg_split('/\s+/', $query); + $q2 = array(); + $q3 = array(); + while (list($k, $v) = each($q)) { + if (!$q[$k]) continue; + $qq = "(UPPER(".$fields[$field]["dbname"].") LIKE '%".MyUpper($q[$k])."%')"; + $is_q1 = false; + for ($i = 0; $i < count($q1_fields); $i++) + if ($q1_fields[$i] == $field) $is_q1 = true; + $is_q2 = false; + for ($i = 0; $i < count($q2_fields); $i++) + if ($q2_fields[$i] == $field) $is_q2 = true; + if ($is_q1) $q2[$k] = $qq; + if ($is_q2) $q3[$k] = $qq; + } + global $basic_logic; + if (count($q2) > 0) array_push($qry_1, "(".implode(" ".$basic_logic." ", $q2).")"); + if (count($q3) > 0) array_push($qry_2, "(".implode(" ".$basic_logic." ", $q3).")"); } - global $basic_logic; - $qry_1 = implode(" ".$basic_logic." ", $q2); - $qry_2 = implode(" ".$basic_logic." ", $q3); + $qry_1 = implode(" AND ", $qry_1); + $qry_2 = implode(" AND ", $qry_2); } } $flds = array(); + reset($fields); while (list($k, $v) = each($fields)) { + $var = "query_".$v["dbname"]; + global $$var; array_push($flds, array( "name" => MyEscape($k, true), - "caption" => MyEscape($v["caption"]) + "caption" => MyEscape($v["caption"]), + "query" => MyEscape($$var) )); } $tp->assign("fields", $flds); @@ -127,10 +139,6 @@ $tp->assign("section_menu", $section_menu); $tp->assign("FORM_ACTION", HTMLSpecialChars("?section=$section§ion_menu={$section_menu}&stype=$stype")); $form = $tp->fetch("search.tpl"); - if ($form) { - global $onload; - $onload .= "document.forms[1].elements[".($stype?2:1)."].focus();"; - } return array($form, $qry_1, $qry_2); } ?>