Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543

    Qual è il modo migliore per confrontare un valore con un valore nel DB?

    Buona sera,
    forse dal titolo si capisce poco, ma di sicuro con un esempio banale renderò tutto più chiaro.
    Ho la necessità di realizzare una sorta di quiz che fornisce delle domande e deve confrontare le risposte tra quella inserita dall'utente e quella presente nel DB.
    Cosa mi consigliate di usare? Un'uguaglianza o un MATCH, AGAINST?
    E nel caso la risposta contenesse più di una parola come dovrei fare? (ex. Piatto preferito? => pasta al pomodoro).

    Grazie.
    "To iterate is human, to recurse, divine." (R.(Heller))

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    98
    sicuramente meglio il match against
    l'ugualianza meglio se hai risposte con una sola parola che trimmata a db e in entrata dalla form se corrisponde è ok.

  3. #3
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    e quindi MATCH/AGAINST mi restituiscono una percentuale?
    "To iterate is human, to recurse, divine." (R.(Heller))

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    98
    è uno score piu è grande il numero piu il dato coincide

    devi usare FULLTEXT sui campi db in cui intendi cercare con il MATCH AGAINST.

  5. #5
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    Scusa ancora, ma quindi come devo fare a realizzare un qualcosa che veda quanto è accurato il testo inserito rispetto a quello presente nel DB?
    Con che valore, cioè, lo confronto?
    "To iterate is human, to recurse, divine." (R.(Heller))

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    98
    andiamo per esempi:

    hai un campo nel db chiamato "descrizione"
    tu da db devi impostarlo come VARCHAR/TEXT/MEDIUMBLOB ... quello che vuoi poi gli assegni anche FULLTEXT

    Dopo di che mettiamo che tu stia cercando le parole "questa è una descrizione"

    generi una query del tipo
    Codice PHP:
    SELECT *, MATCH(descrizioneAGAINST('questa è una descrizione'IN BOOLEAN MODE) as score FROM table
    MySql ritornerà i risultati in un ordine calcolato da lui stesso in base ad uno score di corrispondenza es:
    Codice PHP:
    id |descrizione                           |   score
    1  Ciao questa descrizione è bella    0.6
    2  Ecco una descrizione                   0.5 
    spero sia chiaro ma in questi casi si fa prima a provare direttamente a fare le cose che a spiegarle.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    98
    in realtà ci sono parole che MySQL non calcola neanche, parole inutili secondo lui insomma, articoli "il la le" ... bho non ricordo quali basta che tu legga sulla guida ufficiale.

  8. #8
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    MySql ritornerà i risultati in un ordine calcolato da lui stesso in base ad uno score di corrispondenza
    Si questo l'avevo capito, ma quello che vorrei fare io è qualcosa del tipo "se l'utente immette una descrizione con corrisponenza >= 80% allora fai questo".
    Perciò se quei valori del tuo esempio sono calcolati su una scala da 0 a 1 allora ok, me li trasformo in centesimi e risolvo!
    O sbaglio?

    in realtà ci sono parole che MySQL non calcola neanche, parole inutili secondo lui insomma, articoli "il la le" ... bho non ricordo quali basta che tu legga sulla guida ufficiale
    In questo problema mi ero già imbattuto e, più che alcune parole, sembra che MySQL non consideri TUTTE le parole con lunghezza <= 3.
    "To iterate is human, to recurse, divine." (R.(Heller))

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    98
    ok non avevo capito, questo sinceramente non so dirtelo, guarda sulla guida ufficiale o cerca su google che fai prima!

  10. #10

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.