ciao a tutti!!! ho bisogno di una mano per questo problema:
sto creando un motore di ricerca per un sito, che ha il compito di cercare determinate parole all' interno del mio db (un flat file dove ogni riga è un record e i dati sono separati da | ). Lo scopo del motore è quello di visualizzare non solo gli articoli, ma di ordinarli anche in modo tale che il primo o i primi visualizzati siano anche quelli con maggior coincidenza di dati.
Mi spiego meglio:
record nel db:
213123213|immobili|capannone|700|libero|cremona
745675456|immobili|capannone|900|libero|cremona
046735535|immobili|capannone|300|occupato|cremona
900278366|immobili|capannone|500|libero|bari
se l' utente nei campo di ricerca inserisce come valori di ricerca
capannone
900
libero
il primo articolo che visualizzerà sarà con codice 745675456 , il secondo 213123213, il terzo 046735535 e il quarto 900278366.
io sto procedendo con questo metodo:
Codice PHP:
$dati_ricerca=array();// arreizzo i dati di ricerca
$colonna=array();
$result=array();
$codici=find(0,"data",NULL); //find.. una mia funzione che mi permette di ottenere in un array tutti dati di una determinata colonna in base alla posizione del dato
foreach($name_fields as $key=>$dato)
{
$dati_ricerca[]=$_POST[$key];
$colonna[$key]=find (($key+2),"data",NULL);//parto da 2 per evitare controlli su codice e gruppo, quindi solo i dati
foreach ($colonna[$key] as $subkey=>$valore)
{
$result[$key]=array();
if ($dati_ricerca[$key]==$valore)
$result[$key][]=$codici[$subkey];//inserisce il codice articolo se riscronta l'eguaglianza
// i risultati sono: $result[0]-(per il tipo di dato)-[0]-(per il codice)-
}
}
in pratica mi ritrovo un array multidimensionale $result[0][0] dove la prima chiave è un numero che viene riutilizzato per accedere all' array $dati di ricerca, e la seconda chiave è ad incremento automatico con valore = codice articolo.
come posso ordinarli in base alla mia esigenza???
rompicapo