ricerca:"; //Lettura dei parametri $id_fondo = $_GET["id_fondo"]; $dati_fondo = trovaFondo($id_fondo); //Gestione parole intere $parola_intera=FALSE; $parola_intera_CHK=""; //debug($qs->ritorna_valore('parola_intera',""),"parola intere"); if ($qs->ritorna_valore('parola_intera',"")=="on") { $parola_intera=TRUE; $parola_intera_CHK="checked=\"checked\""; } $array_intestazione=array(); switch ($id_fondo) { case 1: //Ticinese array_push($array_intestazione,ARRAY("intestazione","Parole chiave della scheda","intestazione","47%","intestazione")); array_push($array_intestazione,ARRAY("K02","Autore","K02","35%","autore")); if (strtolower($dati_fondo['con_segnatura'])=='true'){ array_push($array_intestazione,ARRAY("K01","Segn.","segnatura_temp","10%","segnatura")); } //array_push($array_intestazione,ARRAY("num_sequenziale","Seq.","num_sequenziale","5%","sequenza")); array_push($array_intestazione,ARRAY("nomenclatura","Pag.","LPAD(nomenclatura,8,'0')","5%","pagina")); break; case 2: // Corradi array_push($array_intestazione,array("intestazione","Intestazioni","intestazione","87%","intestazione")); /*if (strtolower($dati_fondo['con_segnatura'])=='true'){ array_push($array_intestazione,ARRAY("K01","Segn.","segnatura_temp","10%","segnatura")); }*/ array_push($array_intestazione,ARRAY("nome_volume_breve","Vol.","nome_volume","5%","volume","nome_volume")); //array_push($array_intestazione,ARRAY("num_sequenziale","Seq.","num_sequenziale","5%","sequenza")); array_push($array_intestazione,ARRAY("nomenclatura","Pag.","LPAD(nomenclatura,8,'0')","5%","pagina")); break; default: break; } // Prepara l'intestazione // array("nome campo db","nome visibile,"ordina per",dimensione,abbr) //array_push($array_intestazione,ARRAY("percent","Percentuale","percent")); // Fine Prepara l'intestazione $recordPerPag=25; $defaultOrd="schede.id"; $sql_filtro_where=""; $searchField=""; $searchString=""; $sql_filtro_where="1 "; //Gestisco i valori passati dalla pagina ricerca_semplice if (isset($_REQUEST['searchString'])){ $_REQUEST['valore1']=$_REQUEST['searchString']; $_REQUEST['campo1']=$_REQUEST['searchField']; $qs->elimina_valore("searchString"); $qs->elimina_valore("searchField"); } $valore_mostra=array(1=>"",2=>"",3=>""); $campo_mostra=array(1=>"intestazione",2=>"",3=>""); $collegamento_mostra=array(2=> ""); for ($scorri=1;$scorri<$num_campi_ricerca+1;$scorri++){ if (isset($_REQUEST['valore'.$scorri]) && trim($_REQUEST['valore'.$scorri])!=""){ if (isset($_REQUEST['campo'.$scorri]) && trim($_REQUEST['campo'.$scorri])!=""){ $valore_mostra[$scorri]=htmlspecialchars(stripslashes($_REQUEST['valore'.$scorri]),ENT_QUOTES); $campo_mostra[$scorri]=htmlspecialchars(stripslashes($_REQUEST['campo'.$scorri]),ENT_QUOTES); $qs->setta_valore('valore'.$scorri,stripslashes($_REQUEST['valore'.$scorri])); $qs->setta_valore('campo'.$scorri,stripslashes($_REQUEST['campo'.$scorri])); //calcolo la stringa per la query $searchString_temp=stripslashes($_REQUEST['valore'.$scorri]); $parametro_not=""; $congiunzione_campi="AND"; // Controlla se è settao il not come parametro if (key_exists($scorri,$collegamento_mostra)){ $collegamento_mostra[$scorri]=$_REQUEST['collegamentocampo'.$scorri]; $qs->setta_valore('collegamentocampo'.$scorri,stripslashes($_REQUEST['collegamentocampo'.$scorri])); if ($collegamento_mostra[$scorri]=='not'){ //$sql_where_filtro_temp=" AND ".generaLike(stripslashes($_REQUEST['valore'.$scorri]),stripslashes($_REQUEST['campo'.$scorri]),'%','not'); $parametro_not="not"; $congiunzione_campi="AND"; } elseif ($collegamento_mostra[$scorri]=='or'){ $congiunzione_campi="OR"; //$sql_where_filtro_temp=" ".$collegamento_mostra[$scorri]." ($sql_where_filtro_temp)"; } } else { //$sql_where_filtro_temp=" AND $sql_where_filtro_temp"; } $sql_where_filtro_temp=""; switch ($_REQUEST['campo'.$scorri]) { case "autori": $sql_where_filtro_temp.=" ".generaLike($searchString_temp,'K02','%',"$parametro_not",$parola_intera); $mostra_risultati=true; break; case "nomipropri": //$sql_filtro_where.=" AND (".generaLike($searchString,'CONCAT(intestazione','%')." OR ".generaLike($searchString,'K03','%').")"; $sql_where_filtro_temp.=" (".generaLike($searchString_temp,'CONCAT(intestazione,K03)','%',"$parametro_not",$parola_intera).")"; $mostra_risultati=true; break; case "full": break; case "npagina": $sql_where_filtro_temp.=" nomenclatura $parametro_not like '".mysql_escape_string($searchString_temp)."'"; $mostra_risultati=true; break; case "volumi": $sql_where_filtro_temp.=" nome_volume $parametro_not like '%".mysql_escape_string($searchString_temp)."%'"; $mostra_risultati=true; break; case "intestazione": $sql_where_filtro_temp.=" ".generaLike($searchString_temp,'intestazione','%',"$parametro_not",$parola_intera); $mostra_risultati=true; break; case "K01": $sql_where_filtro_temp.=" K01 like '$searchString_temp'"; $mostra_risultati=true; break; default: //$sql_filtro_where.=" AND {$searchField} like '%".mysql_escape_string($searchString)."%'"; break; } //$sql_where_filtro_temp=" ".generaLike(stripslashes($_REQUEST['valore'.$scorri]),stripslashes($_REQUEST['campo'.$scorri]),'%',''); $sql_filtro_where.="$congiunzione_campi $sql_where_filtro_temp"; } else{ $_REQUEST['valore'.$scorri]=$valore_mostra[$scorri]; $_REQUEST['campo'.$scorri]=$campo_mostra[$scorri]; $qs->elimina_valore('valore'.$scorri); } } else{ $_REQUEST['valore'.$scorri]=$valore_mostra[$scorri]; $_REQUEST['campo'.$scorri]=$campo_mostra[$scorri]; $qs->elimina_valore('valore'.$scorri); } //debug($sql_where_filtro,"FILTRO WHERE"); } debug($sql_filtro_where,"FILTRO"); $str_titolo="Cerca"; // GENERA LA QUERY DI RICERCA if ($mostra_risultati){ $defaultOrd="schede.id"; if (isset($_REQUEST["pagina"])) { $pagina=stripslashes( $_REQUEST["pagina"]); } else { $pagina=1; } if (isset($_REQUEST["orderby"])) { $orderParams=explode(" ",$_REQUEST["orderby"],2); $orderby = $orderParams[0]; (isset($orderParams[1]))?$ordermod=$orderParams[1]:$ordermod = ""; $sql_orderby=$array_intestazione[$orderby] [2]." $ordermod"; $qs->setta_valore("orderby",$orderby." $ordermod"); } else{ $orderby="-1"; $sql_orderby= $defaultOrd; } if (isset($_REQUEST["recordPerPag"])){ $recordPerPag=$_REQUEST["recordPerPag"]; } else { $recordPerPag=$arr_paginatore[0]; } // Si Ë eseguita una ricerca $campi_select="*"; $sql_where="FROM fondi,volumi,pagine, schede WHERE fondi.id=volumi.id_fondo AND volumi.id=pagine.id_volume AND pagine.id=schede.id_immagine AND fondi.Id='$id_fondo' AND ($sql_filtro_where) "; // Trova il numero di record $sql_schede_conta="SELECT Count(*) as contato $sql_where"; debug($sql_schede_conta,"CONTA"); $RS_conta= mysqli_query($DBConn, $sql_schede_conta) or die("Errore SQL!"); $RS_result=mysqli_fetch_array($RS_conta, MYSQLI_ASSOC); $num_elem=$RS_result['contato']; //Calcolo il numero di pagine $numTotPag=(int) ($num_elem/$recordPerPag); if ($num_elem % $recordPerPag !=0) {$numTotPag++;} if ($pagina>$numTotPag) {$pagina=1;} if ($pagina<1) {$pagina=1;} $sql_schede="SELECT $campi_select $sql_where ORDER BY $sql_orderby LIMIT ".(($pagina-1)*$recordPerPag).", $recordPerPag"; //echo $sql_schede; $RS_schede= mysqli_query($DBConn, $sql_schede) or die("Si Ë verifato un errore.... riprova pi˘ tardi"); $str_titolo="Risultati ricerca"; $str_breadcrumbs.=" stampa_indirizzo_temp("campo1,campo2,collegamentocampo2,valore1,valore2")."\">ricerca avanzata: risultati ricerca"; $str_sottotitolo="Numero elementi trovati: $num_elem (pagina $pagina di $numTotPag)"; $qs->setta_valore("pagina",$pagina); $qs->setta_valore("recordPerPag",$recordPerPag); $qs->setta_valore("from","ricerca_avanzata"); } else{ $str_breadcrumbs.=" ricerca avanzata"; } ?> -