Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2000
    Messaggi
    727

    PHP: come ottimizzare il mio motorino di ricerca...

    mi sono costruito a fatica un codice che mi permette di fare delle ricerche nel mio DB, da un text field in cui scrivo una parola prendo la variabile $cerca e poi...

    $keys = explode (",", $cerca);
    $query = "";
    reset ($keys);
    while (list(,$parola) = each ($keys))
    { $parola = trim($parola);
    if ($parola != "")
    $query .= "nome LIKE '%$parola%' OR categoria LIKE '%$parola%' OR sottocategoria LIKE '%$parola%' OR descrizione LIKE '%$parola%' OR ";
    }
    $query .= "0";
    $query = "SELECT * FROM tabella WHERE " . $query;
    ecc. ecc.

    funziona bene se scrivo una sola parola nel text field oppure se ne scrivo di più ma separate da una virgola, vorrei che funzionasse anche bene se scrivo DUE o più PAROLE SEPARATE DA SPAZIO ma non so come fare...
    spero di essermi spiegato bene...

  2. #2
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Ciao,
    la cosa più semplice che mi viene in mente è inserire questa linea di codice in cima

    Codice PHP:
    $cerca str_replace(" ",",",$cerca); 
    Gli spazi diventano virgole, il resto non cambia.
    Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709

    Re: PHP: come ottimizzare il mio motorino di ricerca...

    Originariamente inviato da theseo
    $keys = explode (",", $cerca);

    ??? mah... non capisco bene il dubbio... la riga citata "spezza" il testo di ricerca separandolo in base alla presenza del carattere ","... se usi $keys = explode (" ", $cerca); verrà utilizzato il carattere " " (spazio) come separatore... così non va bene? Se ho capito bene...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2000
    Messaggi
    727
    eccomi, scusate il ritardo nella risposta
    sì in effetti adesso ho messo così

    $keys = explode (" ", $cerca);

    però l'ideale, secondo me (ma accetto consigli), è che funzioni SIA se uno scrive
    pane salame
    SIA se uno scrive
    pane,salame
    adesso con l'ultima modifica
    $keys = explode (" ", $cerca);
    funziona solo se scrivo pane salame

    ripeto che accetto consigli, sono un pò un cavernicolo del php...

  5. #5
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Vedi che ti ho risposto.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2000
    Messaggi
    727
    ah già dimenticavo, ho provato così

    $cerca = str_replace(" ",",",$cerca);

    ma ci dev'essere qualche errore xchè non mette la virgola, lascia lo spazio...

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.