Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Script per ricerca in database mysql

    Salve a tutti!

    Volevo chiedervi se conoscevate, o se potevate dare dei consigli su come impostarlo, uno script per la ricerca da parte degli utenti di un campo in un database mysql. In pratica io ho una tabella con diversi record, ognuno dei quali ha un titolo che può essere una singola parola, ma anche una frase.
    Come impostare la query in modo tale che vengano restituiti i risultati più precisi possibili, ma senza comunque escluderne nessuno (ad esempio se l'utente cerca "forum html", e tra i miei campi c'è anche "forum html e php" esso deve comunque apparire)?

    Io avevo iniziato dividendo la ricerca dell'utente e cercando ogni singola parola della frase inserita, andando poi ad elencare tutti i risultati trovati, mettendo prima quelli in cui le parole risultavano esserci più volte (ad esempio se l'utente cerca "forum html" in questo modo appaiono prima il risultato "forum html e php", poi il risultato "forum di cani", poi il risultato "Asp e html").
    Questo metodo funziona abbastanza ma mi fornisce un gran numero di risultati inoltre è un po' lento.

    Altro problema sono i simboli...se ad esempio l'utente cerca "spiderman", ma io nel database ho "spider-man" allora non vengono forniti risultati.

    Consigli?

  2. #2
    secondo me dovresti crearti una seconda tabella contenente le parole chiave(una sorta di dizionario) che devono essere utilizzate per trovare una determinata pagina, es:

    hashtable_ricerca("id_tabella_da_ricercare", "parole_chiave");

    1 | pippo;pluto;paperino;....

    Poi fai una ricerca su quella tabella in questo modo:
    codice:
    function ricerca($query_ricerca){
    	$ar = explode(" ", $query_ricerca);
    	foreach ($tabella_hash as $res){
    		$a = explode(";",$res)
    		cerchi i risultati che coincidono con $a e $ar   
    	}
    }
    se ricerchi spiderman o uomo ragno ma il tuo titolo è spider-man, in questo modo potrai trovarlo e avrai lo stesso risultato.
    Nelle ricerche non utilizzare mai il LIKE altrimenti se ricerchi der-m ti restituisce spider-man che è sbagliato.

    Spero di averti dato una dritta
    /*no comment*/

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.