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

    Problema con la Ricerca fulltext match against (MySQL)

    Vorrei ricercare in una tabella FULLTEXT. Uso questo codice
    Codice PHP:
    $abusca $_POST['cerca'];
    //recupero il dato inserito nel form
    $procura "+".str_replace(' ''+'trim(str_replace(','' '$abusca)));
    //aggiungo l'operatore "+" per la ricerca di piu parole (esempio: "+prima+seconda")
    $minhaquery "SELECT * FROM mia_table 
    WHERE  MATCH (titolo, autore, texto) 
    AGAINST ('
    $procura' IN BOOLEAN MODE)";
    //esempio della mia query supponendo il post "prima seconda": 
    //SELECT... AGAINST('+prima+seconda' IN BOOLEAN MODE) 
    Il codice sembra funzionare a metà, ma ci sono 2 problemi, per i quali chiedo il vostro aiuto
    1. Se metto una parola incompleta (ad esempio "second" ), non me trova la parola "seconda". Ho provato a aggiungere "*" => SELECT... AGAINST('prima*' IN BOOLEAN MODE) ma mi restituisce 0 record
    2. Con la query SELECT... AGAINST('+prima+seconda' IN BOOLEAN MODE) mi trova tutti i record dove compaiono "prima" e quelli con "seconda". Vorrei invece trovare soltanto i record che hanno sia "prima" che "seconda".
    Luiz

  2. #2
    Ho guardato molte discussioni nella web, ma nessuna risposta. Ho studiato anche un script che funziona bene però non si usa "fulltext" ma si una ricerca semplice con LIKE
    Luiz

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Quote Originariamente inviata da ldarosa Visualizza il messaggio
    Ho provato a aggiungere "*" => SELECT... AGAINST('prima*' IN BOOLEAN MODE) ma mi restituisce 0 record
    Avresti dovuto scrivere AGAINST('prim*'... oppure AGAINST('second*'... non la parola già completa

    con la query SELECT... AGAINST('+prima+seconda' IN BOOLEAN MODE) mi trova tutti i record dove compaiono "prima" e quelli con "seconda". Vorrei invece trovare soltanto i record che hanno sia "prima" che "seconda".
    Da una letta qui, ti dice tutte le ricerche che puoi effettuare con fulltext, inoltre specifica

    '+apple +juice'
    Find rows that contain both words.

    Magari a te non va per via della mancanza dello spazio

Tag per questa discussione

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.