1 |
<?php |
<?php |
2 |
include_once("inc/conn.php"); |
include_once("inc/conn.php"); |
3 |
function ParseField($fld) { |
include_once("inc/search.php"); |
4 |
if ($fld == "atk") return "lijekovi.sif_atk || lijekovi.sif_atk_ostalo"; |
$fields = array( |
5 |
if ($fld == "inn") return "generici.naziv"; |
"atk" => array("dbname" => "lijekovi.sif_atk || lijekovi.sif_atk_ostalo", "caption" => "ATK"), |
6 |
if ($fld == "proizvodjac") return "proizvodjaci.naziv"; |
"inn" => array("dbname" => "generici.naziv", "caption" => "INN"), |
7 |
if ($fld == "name") return "lijekovi.naziv"; |
"proizvodjac" => array("dbname" => "proizvodjaci.naziv", "caption" => "Manufacturer"), |
8 |
if ($fld == "hzzo") return "lijekovi.nacin_izdavanja"; |
"name" => array("dbname" => "lijekovi.naziv", "caption" => "Name"), |
9 |
return $fld; |
"hzzo" => array("dbname" => "lijekovi.nacin_izdavanja", "caption" => "HZZO") |
10 |
} |
); |
11 |
$qry = ""; |
list($srch, $qry, $qry_2) = Search($fields, |
12 |
$qry_2 = ""; |
array("inn", "proizvodjac", "name"), array("atk", "hzzo")); |
|
if ($stype) { |
|
|
$search = array(); |
|
|
$i = 1; |
|
|
while (${"search_".$i}) { |
|
|
if (${"delete_".$i}) { $i++; continue; } |
|
|
if (${"and_".$i}) ${"logic_".$i} = "AND"; |
|
|
if (${"or_".$i}) ${"logic_".$i} = "OR"; |
|
|
array_push($search, array( |
|
|
"field" => ${"field_".$i}, |
|
|
"not" => ${"not_".$i}, |
|
|
"query" => MyEscape(${"query_".$i}), |
|
|
"logic" => ${"logic_".$i}, |
|
|
"concat" => ${"concat_".$i}, |
|
|
"case" => ${"case_".$i} |
|
|
)); |
|
|
$i++; |
|
|
} |
|
|
if (count($search) == 0 || ${"and_".($i - 1)} || ${"or_".($i - 1)}) { |
|
|
$log = ""; |
|
|
if (${"and_".($i - 1)}) $log = "AND"; |
|
|
if (${"or_".($i - 1)}) $log = "OR"; |
|
|
if (count($search) > 0) $search[count($search) - 1]["logic"] = $log; |
|
|
array_push($search, array( |
|
|
"field" => "", |
|
|
"not" => "", |
|
|
"query" => "", |
|
|
"logic" => "", |
|
|
"concat" => "OR", |
|
|
"case" => "" |
|
|
)); |
|
|
} |
|
|
$search[count($search) - 1]["logic"] = ""; |
|
|
$tpl->assign("search", $search); |
|
|
} else { |
|
|
$tpl->assign("field", $field); |
|
|
$tpl->assign("query", MyEscape($query)); |
|
|
} |
|
|
if (!$stype) $stype = 0; |
|
|
$tpl->assign("stype", $stype); |
|
|
if ($go) { |
|
|
if ($stype) { |
|
|
$qry = ""; |
|
|
$logic = ""; |
|
|
$i = 1; |
|
|
while (${"search_".$i}) { |
|
|
$field = ${"field_".$i}; |
|
|
$not = ${"not_".$i} ? "NOT" : ""; |
|
|
$qry1 = preg_split('/\s+/', ${"query_".$i}); |
|
|
$qry2 = array(); |
|
|
$qry3 = array(); |
|
|
while (list($k, $v) = each($qry1)) { |
|
|
if (!$qry1[$k]) continue; |
|
|
if (${"case_".$i}) |
|
|
$qq = "(".ParseField($field)." $not LIKE '%".$qry1[$k]."%')"; |
|
|
else |
|
|
$qq = "(UPPER(".ParseField($field).") $not LIKE UPPER('%".$qry1[$k]."%'))"; |
|
|
if ($field == "atk" || $field == "hzzo") $qry3[$k] = $qq; |
|
|
else $qry2[$k] = $qq; |
|
|
} |
|
|
$qry1 = implode(" ".${"concat_".$i}." ", $qry2); |
|
|
if ($qry1) { |
|
|
if ($logic) $qry .= " $logic "; |
|
|
$qry .= "($qry1)"; |
|
|
$logic = ${"logic_".$i}; |
|
|
} |
|
|
$qry1 = implode(" ".${"concat_".$i}." ", $qry3); |
|
|
if ($qry1) { |
|
|
if ($logic) $qry_2 .= " $logic "; |
|
|
$qry_2 .= "($qry1)"; |
|
|
$logic = ${"logic_".$i}; |
|
|
} |
|
|
$i++; |
|
|
} |
|
|
} else { |
|
|
$q = preg_split('/\s+/', $query); |
|
|
$q2 = array(); |
|
|
$q3 = array(); |
|
|
while (list($k, $v) = each($q)) { |
|
|
if (!$q[$k]) continue; |
|
|
$qq = "(UPPER(".ParseField($field).") LIKE UPPER('%".$q[$k]."%'))"; |
|
|
if ($field == "atk" || $field == "hzzo") $q3[$k] = $qq; |
|
|
else $q2[$k] = $qq; |
|
|
} |
|
|
$qry = implode(" OR ", $q2); |
|
|
$qry_2 = implode(" OR ", $q3); |
|
|
} |
|
|
} |
|
13 |
$tpl->assign("index", $index ? true : false); |
$tpl->assign("index", $index ? true : false); |
14 |
$tpl->assign("srch", ($go && ($qry || $qry_2)) ? true : false); |
$tpl->assign("srch", ($qry || $qry_2) ? true : false); |
15 |
if ($index || ($go && ($qry || $qry_2))) { |
$tpl->assign("SEARCH", $srch); |
16 |
$sql = "SELECT DISTINCT lijekovi.sif_inn, SUBSTRING(lijekovi.naziv FROM 1 FOR 1) AS prvo_slovo, lijekovi.naziv, proizvodjaci.naziv, generici.naziv FROM lijekovi, generici, proizvodjaci WHERE (lijekovi.sif_proizvodjac = proizvodjaci.proiz_id) AND (lijekovi.sif_inn = generici.generik_id)"; |
if ($index || ($qry || $qry_2)) { |
17 |
|
$sql = "SELECT DISTINCT lijekovi.sif_inn, UPPER(SUBSTRING(lijekovi.naziv FROM 1 FOR 1)) AS prvo_slovo, lijekovi.naziv, proizvodjaci.naziv, generici.naziv FROM lijekovi, generici, proizvodjaci WHERE (lijekovi.sif_proizvodjac = proizvodjaci.proiz_id) AND (lijekovi.sif_inn = generici.generik_id)"; |
18 |
if ($qry) $sql .= " AND ($qry)"; |
if ($qry) $sql .= " AND ($qry)"; |
19 |
$sql .= " ORDER BY prvo_slovo, lijekovi.naziv"; |
$sql .= " ORDER BY prvo_slovo, lijekovi.naziv"; |
20 |
#echo "<TT><B>[SQL]</B> $sql</TT><BR>\n"; |
#echo "<TT><B>[SQL]</B> $sql</TT><BR>\n"; |
29 |
list($inn, $fl, $naziv, $proizv, $generik) = $row; |
list($inn, $fl, $naziv, $proizv, $generik) = $row; |
30 |
$proizv = strtoupper($proizv); |
$proizv = strtoupper($proizv); |
31 |
if (!isset($staro_slovo)) $staro_slovo = $fl; |
if (!isset($staro_slovo)) $staro_slovo = $fl; |
32 |
if (!($go && ($qry || $qry_2)) && $staro_slovo != $fl) { |
if (!($qry || $qry_2) && $staro_slovo != $fl) { |
33 |
$records += count($lijekovi); |
$records += count($lijekovi); |
34 |
array_push($slova, array("l" => $staro_slovo, "lijekovi" => $lijekovi)); |
array_push($slova, array("l" => $staro_slovo, "lijekovi" => $lijekovi)); |
35 |
$staro_slovo = $fl; |
$staro_slovo = $fl; |
71 |
$tpl->assign("records", $records); |
$tpl->assign("records", $records); |
72 |
$tpl->assign("slova", $slova); |
$tpl->assign("slova", $slova); |
73 |
} |
} |
|
$tpl->assign("fields", array( |
|
|
array("name" => "atk", "caption" => "ATK"), |
|
|
array("name" => "inn", "caption" => "INN"), |
|
|
array("name" => "hzzo", "caption" => "HZZO"), |
|
|
array("name" => "name", "caption" => "Name"), |
|
|
array("name" => "proizvodjac", "caption" => "[proizvodjac]") |
|
|
)); |
|
|
$tpl->assign("FORM_ACTION", $PHP_SELF.HTMLSpecialChars("?section=$section&stype=$stype")); |
|
74 |
$tpl->assign("isedit", isEdit()); |
$tpl->assign("isedit", isEdit()); |
75 |
$dbh->disconnect(); |
$dbh->disconnect(); |
76 |
?> |
?> |