Non puoi selezionare più di 25 argomenti
Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
59 righe
2.1 KiB
59 righe
2.1 KiB
<? |
|
$configPath = substr(__DIR__,0,strpos(__DIR__,"/public_html"))."/config.php"; |
|
include_once($configPath); |
|
include_once($root."/inc/funzioni.php"); |
|
if (isset($_GET["query"])) { |
|
$text = $_GET["query"]; |
|
$esclusioni = ""; |
|
$lingua = $_SESSION["language"]; |
|
$bind = array(); |
|
if (isset($_GET["selezionate"]) && $_GET["selezionate"] != "") { |
|
$esclusioni = " AND ("; |
|
$selezionati = explode(",",base64_decode($_GET["selezionate"])); |
|
$i = 0; |
|
foreach($selezionati as $codice) { |
|
$i++; |
|
if ($codice != "") { |
|
$bind[":codice_".$i] = $codice; |
|
$bind[":no_codice_".$i] = $codice."%"; |
|
$esclusioni .= "(codice <> :codice_" . $i . " AND codice NOT LIKE :no_codice_" . $i . ") AND "; |
|
} |
|
} |
|
$esclusioni = substr($esclusioni,0,-5); |
|
$esclusioni .= ")"; |
|
} |
|
$condizione = "( "; |
|
$return = suddivisione_pdo($text,"b_cpv.codice"); |
|
if (is_array($return)) { |
|
$condizione .= $return["sql"] . " OR "; |
|
$bind = array_merge($bind,$return["bind"]); |
|
} |
|
$return = suddivisione_pdo($text,"b_cpv.".$lingua); |
|
if (is_array($return)) { |
|
$condizione .= $return["sql"]; |
|
$bind = array_merge($bind,$return["bind"]); |
|
} |
|
$condizione .= ") "; |
|
if(! empty($_GET["minlength"])) { |
|
$condizione .= " AND LENGTH(codice) >= :minlength "; |
|
$bind[":minlength"] = $_GET["minlength"]; |
|
} |
|
if(! empty($_GET["macro"])) { |
|
$condizione .= " AND codice LIKE :macro AND LENGTH(codice) >= :minlength "; |
|
$bind[":macro"] = "{$_GET["macro"]}%"; |
|
$bind[":minlength"] = $_GET["minlength"]; |
|
} |
|
$strsql = "SELECT *, b_cpv.{$lingua} AS descrizione FROM b_cpv "; |
|
$strsql.= " WHERE {$condizione} {$esclusioni} "; |
|
$strsql.= " ORDER BY "; |
|
$strsql.= " LENGTH(codice), codice"; |
|
$risultato = $pdo->go($strsql,$bind); |
|
$rec = array(); |
|
if ($risultato->rowCount()>0) { |
|
while ($record = $risultato->fetch(PDO::FETCH_ASSOC)) { |
|
$rec[] = array("value"=>$record["codice"],"label"=>$record["codice"] . " - " . $record["descrizione"],"complete"=>$record["codice_completo"]); |
|
} |
|
} |
|
echo json_encode($rec); |
|
} |
|
?>
|
|
|