Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074

    query che non tenga conto di caratteri minuscoli/maiuscoli

    Ho una query per un motore di ricerca interno, che ricerca il termine inserito dall'utente in due diversi campi del db, 'titolo' e 'testo':
    codice:
    $result = mysql_query("SELECT *, MATCH(`titolo`,`testo`) AGAINST ('$searchvalue' IN BOOLEAN MODE) AS tot FROM `eventi` WHERE MATCH(`titolo`,`testo`) AGAINST ('$searchvalue' IN BOOLEAN MODE) ORDER BY `data` DESC");
    Se però l'utente - ad esempio - scrive "roma", e nel db ho solo ricorrenze dove è scritto "Roma", la query non mi restituisce quel risultato.
    Come posso far si che, invece, la query ignori questa caratteristica?
    metatad
    graphic & web design

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    sei sicuro che la query passi i dati giusti?
    Match() Against() è case insensitive, ho anche provato una query uguale alla tua su una mia tabella e restituisce il risultato corretto anche scambiando maiuscole e minuscole

    stampa a schermo la query per verificare che sia corretta
    Codice PHP:
    echo "SELECT *, MATCH(titolo,testo) AGAINST ('$searchvalue' IN BOOLEAN MODE) AS tot FROM eventi WHERE MATCH(titolo,testo) AGAINST ('$searchvalue' IN BOOLEAN MODE) ORDER BY data DESC"
    ah, i backtick dai nomi dei campi li puoi anche togliere come ho fatto io nel codice sopra

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    anch'io pensavo fosse case insensitive... però se scrivo "roma" non restituisce nulla, se scrivo "Roma" invece si...
    metatad
    graphic & web design

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Io non lo penso, è proprio scritto nella documentazione di MySQL...
    Lancia la stessa query su phpmyadmin o su un altro client per MySQL e vedi che cosa ti restituisce, mi sembra un comportamento alquanto strano

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Se faccio la query su phpmyadmin, si comporta nello stesso modo: "roma" nessun risultato, "Roma" risultati...
    metatad
    graphic & web design

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Visto che è indipendente da PHP, ti sposto in Database.

  7. #7
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    mi è venuto adesso un dubbio... che Collation usi per i campi della tabella? se non l'hai già fatto usane una case insensitive

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    UTF8bin
    metatad
    graphic & web design

  9. #9
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    prova a variarlo con uno di quelli con desinenza _ci

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    no, la query da errore (provato con UTF8_general_ci)... :-(
    metatad
    graphic & web design

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.