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

    modulo di ricerca in php...

    Salve,
    ho realizzato un modulo di ricerca in php molto semplice ma non sono soddisfatto, vi spiego perchè.

    Allora, ho un campo di testo input nel quale si inserisce la parola o la frase da ricercare; supponiamo che io voglia cercare la frase

    "Oggi è una giornata di sole"

    Se nel campo input inserisco "Oggi" oppure "giornata" oppure "giornata di sole" la frase viene ricercata correttamente; cioè o inserisco una sola parola o tutte le parole IN SEQUENZA funziona bene. Se per esempio io cerco "Oggi sole" oppure "giornata sole" ect... (parole della stessa frase ma che non stanno in sequenza) non mi trova la frase....


    la ricerca viene effettuata tramite query sql in questo modo:

    $chiave è la variabile che ottengo come post o get per la ricerca
    SELECT * FROM database WHERE frase LIKE '%$chiave%'

    ------
    ho pensato di usare una explode e ricercare tutti gli elementi del vettore creato in questo modo, spezzando la stringa ad ogni spazio vuoto della frase di ricerca ma mi restituisce sempre nessun risultato.... dove sbaglio

    $parole_chiave = explode(" ", $chiave);
    SELECT * FROM database WHERE frase LIKE '%$parole_chiave%'

  2. #2
    potrebbe essere che $parola_chiave dopo l'explode ti ritorna come un'array ;D

    http://www.php.net/manual/it/function.explode.php

  3. #3

    ... ci siamo quasi

    Infatti, credo che il primo problema fosse quello. L'ho risolto in questo modo

    Codice PHP:
    $parole_chiave explode(" "$chiave);
    for(
    $i=0$i<count($parole_chiave); $i++)){
    $parole_chiave_2 $parole_chiave[$i];
    }
    SELECT FROM database WHERE frase LIKE '%$parole_chiave_2%' 
    Concettualmente è corretto, infatti se voglio cercare:

    "OGGI E' UNA GIORNATA DI SOLE"

    e digito "Oggi" oppure "oggi giornata" funziona bene... però (nel secondo caso della ricerca) mi restituisce anche tutte le frasi in cui è presente o solo la parola "oggi" o solo la parola "giornata" o tutte e due...

    Cioè non filtra la ricerca per risultati che contengono solo le parole OGGI e GIORNATA, ma prende tutti quelli che contengono le singole parole...

    ---

    ho pensato, dal ciclo for di mettere tutto in una stringa e poi cercare ma non so se sia la strada giusta da seguire

  4. #4

    ops...

    ANCORA NULLA PER LA RICHIESTA DI PRIMA!?

    -------
    Allora ve ne faccio un'altra nel frattempo...

    Nella ricerca se io digito "auguri" mi trova anche "AUGURIamo".
    Praticamente è per il fatto che utilizzo

    SELECT * FROM db WHERE $parola_cercata LIKE '%$key%'

    quindi allo stesso modo se scrivo "pan" mi trova "panettone" - "panino" - "panno" ect

    Come faccio per cercare solo "pan" ????

  5. #5
    Codice PHP:
    SELECT FROM db WHERE $parola_cercata '$key' 

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.