Ho trovato questo script, e cercavo di utilizzarlo,


Codice PHP:
<?
// PulisciQuery: Restituisce la query pulita da porole inutili(congiunzioni etc.)
function PulisciQuery($queryvar){
    
// array parole di cui non tener conto nelle ricerche
    
$arrayBadWord=Array("lo""l""il""la""i""gli""le""uno""un""una""un""su""sul""sulla""sullo""sull""in""nel""nello""nella""nell""con""di""da""dei""d",  "della""dello""del""dell""che""a""dal""è""e""per""non""si""al""ai""allo""all""al""o");
    
$queryclean=strtolower($queryvar);
    for(
$a=0;$a<count($arrayBadWord);$a++){
        
// sostituisco bad words con espressioni regolari \b ->solo se parole singole, non facenti parti di altre
        
$queryclean=preg_replace("/\b".$arrayBadWord[$a]."\b/"""$queryclean);
    }
    
// elimino tutti caratteri non alfanumerici sostituendeli con uno spazio
    
$queryclean=preg_replace("/\W/"" "$queryclean);
    return 
$queryclean;
}

// QueryToArray: Restituisce array delle parole chiave da cercare
function QueryToArray($queryvar){
    
// pulisco query da parole accessorie e caratteri non alfanumerici
    
$querypulita=PulisciQuery($queryvar);
    
// costruisco l'array contenente tutte le parole da cercare
    
$arraySearch=explode(" "$querypulita);
    
// elimino doppioni dall'array
    
$arraySearchUnique=array_unique($arraySearch);
    
// elimino valori array vuoti o con solo spazi
    
$arrayVuoto=Array(""," ");
    
$arrayToReturn=array_diff($arraySearchUnique$arrayVuoto);
    return 
$arrayToReturn;
}

// CreaQueryRicerca: Creo la query di ricerca. 
// peso titolo se non specificato=5, peso testo se non specificato=3
// searchlevel -> 1 o 0. default 1. Se 0 trova parole non complete. Es. cerchi osso?ok anche ossobuco. Se 1 non succede.
function CreaQueryRicerca($queryvar$pesotitolo=5$pesotesto=3$searchlevel=1){
    
// trasformo la stringa in un array di parole da cercare
    
$arrayToFind=QueryToArray($queryvar);
    
// numero elementi da cercare
    
$elementiToFind=count($arrayToFind);    
    
// punteggio massimo raggiungibile
    
$maxPoint=$elementiToFind*$pesotitolo+$elementiToFind*$pesotesto;
    if(
$elementiToFind==0){
        return 
"";
    }else{
        
$query="select ROUND((";
        
$sqlwhere="";
        
// ciclo per ogni parola trovata ($Valore)
        
foreach($arrayToFind As $Indice => $Valore){
            
// se $Valore è presente in titolo instr(titolo, '$Valore') restituirà 1 altrimenti 0
            // moltiplico il valore restituito (1 o 0) per il peso della parola (5 per il titolo, 3 per testo)    
            
if($searchlevel==1){
                
// regexp: uso espressioni regolari. [[:<:]] equivale a \b per separare parole
                
$query.="((titolo REGEXP '[[:<:]]".$Valore."[[:>:]]')>0)*$pesotitolo+";
                
$query.="((testo REGEXP '[[:<:]]".$Valore."[[:>:]]')>0)*$pesotesto+";
                
$sqlwhere.="titolo REGEXP '[[:<:]]".$Valore."[[:>:]]' OR testo REGEXP '[[:<:]]".$Valore."[[:>:]]' OR ";
            }else{
                
$query.="(instr(titolo, '$Valore')>0)*$pesotitolo+";
                
$query.="(instr(testo, '$Valore')>0)*$pesotesto+";
                
$sqlwhere.="titolo like '%$Valore%' OR testo like '%$Valore%' OR ";
            }
        }
        
$sqlwhere=substr($sqlwhere0strlen($sqlwhere)-4);
        
// calcolo la percentuale di rilevanza  --> rilevanza*100/$maxPoint
        
$query.="0)*100/$maxPoint,2) as rilevanza, ID, titolo from tabella WHERE $sqlwhere order by rilevanza DESC";
        return 
$query;
    }
}

// stringa da ricercare presa da form.
//$queryvar="parola1 parola2"; //esempio
if(isset($_POST['search'])){$queryvar=$_POST['search'];}else{$queryvar="";}

if(
trim($queryvar)=="" || strlen(trim($queryvar))<=3){
    echo 
"La stringa di ricerca deve contenere più di 3 caratteri.";
}else{
    
// query da eseguire 
    // primo valore passato è peso delle parole cercate nel titolo, secondo peso parole nel testo
    // terzo valore cercato: 1 o0: accuratezza ricerca. Se 0 trova parole non complete. Es. cerchi osso?ok anche ossobuco. Se 1 non succede.
    // CreaQueryRicerca($queryvar) -> prende primo e secondo valore di default
    
$queryRicerca=CreaQueryRicerca($queryvar531);
    
// Eseguo la query
    // La query restituisce ID, titolo e % di rilevanza del risultato
    
echo $queryRicerca;
}
?>
Ed io ho fatto piccole modifiche:
Codice PHP:
<?php

  
  $queryvar 
$_GET['k'];
  
// PulisciQuery: Restituisce la query pulita da porole inutili(congiunzioni etc.)
function PulisciQuery($queryvar){
    
// array parole di cui non tener conto nelle ricerche
    
$arrayBadWord=Array("lo""l""il""la""i""gli""le""uno""un""una""un""su""sul""sulla""sullo""sull""in""nel""nello""nella""nell""con""di""da""dei""d",  "della""dello""del""dell""che""a""dal""è""e""per""non""si""al""ai""allo""all""al""o");
    
$queryclean=strtolower($queryvar);
    for(
$a=0;$a<count($arrayBadWord);$a++){
        
// sostituisco bad words con espressioni regolari \b ->solo se parole singole, non facenti parti di altre
        
$queryclean=preg_replace("/\b".$arrayBadWord[$a]."\b/"""$queryclean);
    }
    
// elimino tutti caratteri non alfanumerici sostituendeli con uno spazio
    
$queryclean=preg_replace("/\W/"" "$queryclean);
    return 
$queryclean;
       
}

// QueryToArray: Restituisce array delle parole chiave da cercare
function QueryToArray($queryvar){
 
    
    
// pulisco query da parole accessorie e caratteri non alfanumerici
    
$querypulita=PulisciQuery($queryvar);
    
// costruisco l'array contenente tutte le parole da cercare
    
$arraySearch=explode(" "$querypulita);
    
// elimino doppioni dall'array
    
$arraySearchUnique=array_unique($arraySearch);
    
// elimino valori array vuoti o con solo spazi
    
$arrayVuoto=Array(""," ");
    
$arrayToReturn=array_diff($arraySearchUnique$arrayVuoto);
    return 
$arrayToReturn;
}

// CreaQueryRicerca: Creo la query di ricerca. 
// peso titolo se non specificato=5, peso testo se non specificato=3
// searchlevel -> 1 o 0. default 1. Se 0 trova parole non complete. Es. cerchi osso?ok anche ossobuco. Se 1 non succede.
function CreaQueryRicerca($queryvar$pesotitolo=5$pesoautore=3$searchlevel=1){
    
// trasformo la stringa in un array di parole da cercare
    
$arrayToFind=QueryToArray($queryvar);
    
// numero elementi da cercare
    
$elementiToFind=count($arrayToFind);    
    
// punteggio massimo raggiungibile
    
$maxPoint=$elementiToFind*$pesotitolo+$elementiToFind*$pesoautore;
    if(
$elementiToFind==0){
        return 
"";
    }else{
        
$query="select ROUND((";
        
$sqlwhere="";
        
// ciclo per ogni parola trovata ($Valore)
        
foreach($arrayToFind As $Indice => $Valore){
            
// se $Valore è presente in titolo instr(titolo, '$Valore') restituirà 1 altrimenti 0
            // moltiplico il valore restituito (1 o 0) per il peso della parola (5 per il titolo, 3 per testo)    
            
if($searchlevel==1){
                
// regexp: uso espressioni regolari. [[:<:]] equivale a \b per separare parole
                
$query.="((titolo REGEXP '[[:<:]]".$Valore."[[:>:]]')>0)*$pesotitolo+";
                
$query.="((autore REGEXP '[[:<:]]".$Valore."[[:>:]]')>0)*$pesoautore+";
                
$sqlwhere.="Titolo REGEXP '[[:<:]]".$Valore."[[:>:]]' OR Autore REGEXP '[[:<:]]".$Valore."[[:>:]]' OR ";
            }else{
                
$query.="(instr(titolo, '$Valore')>0)*$pesotitolo+";
                
$query.="(instr(autore, '$Valore')>0)*$pesoautore+";
                
$sqlwhere.="Titolo like '%$Valore%' OR Autore like '%$Valore%' OR ";
            }
        }
        
$sqlwhere=substr($sqlwhere0strlen($sqlwhere)-4);
        
// calcolo la percentuale di rilevanza  --> rilevanza*100/$maxPoint
        
$query.="0)*100/$maxPoint,2) as rilevanza, Tiolo, Autore from ((Autore right JOIN Creazione ON ID=Autore)right join Opera on Opera=Opera.ID)left join File ON Opera.ID=File.Opera 
                WHERE 
$sqlwhere order by rilevanza DESC";
                
        return 
$query;
    }

//echo 
// stringa da ricercare presa da form.
//$queryvar="parola1 parola2"; //esempio
if(isset($_POST['search'])){$queryvar=$_POST['search'];}else{$queryvar="";}

if(
trim($queryvar)=="" || strlen(trim($queryvar))<=3){
    echo 
"La stringa di ricerca deve contenere più di 3 caratteri.";
}else{
    
// query da eseguire 
    // primo valore passato è peso delle parole cercate nel titolo, secondo peso parole nel testo
    // terzo valore cercato: 1 o0: accuratezza ricerca. Se 0 trova parole non complete. Es. cerchi osso?ok anche ossobuco. Se 1 non succede.
    // CreaQueryRicerca($queryvar) -> prende primo e secondo valore di default
    
$queryRicerca=CreaQueryRicerca($queryvar531);
    
// Eseguo la query
    // La query restituisce ID, titolo e % di rilevanza del risultato
    
echo $queryRicerca;
}
?>
ma non ce la faccio, non ottengo alcuna query... mi dice solamente: "La stringa di ricerca deve contenere più di 3 caratteri".
Dove sbaglio?