Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Query

  1. #1
    Utente bannato L'avatar di Fronte
    Registrato dal
    Dec 2010
    Messaggi
    358

    Query

    Buongiorno A tuttissimi .
    Non so come cercare il modo di effettuare una query ;
    Sto lavorando con una ricerca che si basa sulla singola stringa di una sola parola es:

    $sql="SELECT *from contatti where note = '%$parola%'";

    però se faccio la stessa tipologia di ricerca in un campo che contiene
    + righe . con lo stesso modo di passaggio valore A un form di ricerca tramite input text

    ES: --- cioccolata bianca --- non trova ne cioccolata ne bianca .


    Come Faccio a documentarmi e come si chiama il tipo di ricerca ???

    Grazie

  2. #2
    Utente bannato L'avatar di Fronte
    Registrato dal
    Dec 2010
    Messaggi
    358
    SCusate ho omesso il LIKE dentro la query .

  3. #3
    Mi sembra strano come problema.
    Ad occhio, ma ammetto che ho davvero dato un'occhiata al volo, non devi mettere l'uguale nella query.
    Codice PHP:
    $sql="SELECT *from contatti where note LIKE '%$parola%'"
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  4. #4
    Utente bannato L'avatar di Fronte
    Registrato dal
    Dec 2010
    Messaggi
    358
    !!
    e no infatti non lho usato , ho isato ilLIKE ma il problema della ricerca con più parole ,
    credo rimani ,

  5. #5
    trovo sia un comportamento anomalo.
    Sicuro che non ci siano altri intoppi?
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  6. #6
    Utente bannato L'avatar di Fronte
    Registrato dal
    Dec 2010
    Messaggi
    358
    HAi ragione dalle verifiche effettuate , la ricerca funziona però ,


    es:
    nel campo di ricerca esiste cioccolata bianca , e se inserisco "cioccolata bianca" .Lo trova "
    se inserisco ciocciate bianca non lo trova....

    GRAZIE , pensavo fosse una mancanza della procedura invece è un mio problema !!.

  7. #7
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    devi usare una funzione che divida le parole in un array e le cerchi singolarmente nel DB.. una roba tipo:
    Codice PHP:
    $sql="SELECT *from contatti where 1 AND ";

    $keys explode(" "$parola);

    $sql .= " note LIKE '%$keys[0]%'  ";
    if(
    count($keys) == 2) {
    $sql .= " OR note LIKE '%$keys[1]%' ";
    }
    // stampa a video la query, per il debug
    echo $sql 
    questo per 2 parole.. ma l'utente può metterne di più quindi dovresti ragionare diversamente..
    ho scritto tutto di getto, ma concettualmente dovrebbe essere corretto... se ti da errore fai un echo come scritto..

  8. #8
    Utente bannato L'avatar di Fronte
    Registrato dal
    Dec 2010
    Messaggi
    358
    Grazie telegio ,
    La stringa che viene caricata deriva da una singola input text
    <input type="text" name="parola".....>



    Quindi :
    $_POST['parola']=$parola;



    Quindi carico l' array passato con value di $parola , come consigli ?


    esatto?
    A presto , provo questo nuovo metodo che non conoscevo .
    Ancora Grazie .

  9. #9
    Originariamente inviato da Fronte
    [...] se inserisco "cioccolata bianca" .Lo trova "
    se inserisco ciocciate bianca non lo trova....[...]
    Stai chiedendo troppo ad una semplice query con LIKE.
    Il % prima e dopo indica alla query di cercare quella chiave all'interno di più stringhe.
    Nel caso si tratti di una parola chiave singola, allora è giusto cercare "attinenze" parziali.
    Nel caso invece di doppia parola, le possibili occorrenze devono essere PRIMA e DOPO la stringa di ricerca stessa, non a metà di una delle due parole!
    MySQL, così come scrivi te, non può assolutamente cercare le assonanze tra quanto scritto e quanto in sua memoria.
    Onestamente non so se MySQL, nelle sue ultime versioni, abbia il SOUNDS LIKE come Oracle, ma anche se lo avesse, non funzionerebbe come scrivi te.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

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 © 2024 vBulletin Solutions, Inc. All rights reserved.