/[health_html]/inc/pgLibrary.php
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /inc/pgLibrary.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by ravilov, Wed Aug 8 12:58:08 2001 UTC revision 1.4 by ravilov, Fri Aug 10 13:59:06 2001 UTC
# Line 1  Line 1 
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";
# Line 115  Line 29 
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;
# Line 157  Line 71 
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  ?>  ?>

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

  ViewVC Help
Powered by ViewVC 1.1.26