Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    487

    problema con dati non sempre uguali nei campi

    mi spiego meglio.ho una tabella comuni in cui ci sono dei i nomi dei comuni...esempio:abano,rubano,vigonza etc. a volte pero è scritto ABANO - TEOLO, oppure è scritto PRA'GRANDE e su un altro record pragrande..

    come faccio a fare in modo che se seleziono PRA'GRANDEda un menu a tendina, riesca a trovarmi anche pragrande o se seleziono ABANO mi dia anche ABANO - TEOLO?
    Vivi intensamente, muori giovane e sarai un cadavere di bell' aspetto.

  2. #2
    Utente bannato
    Registrato dal
    Jan 2002
    Messaggi
    852
    comincia ad usare nella query la funzione LCASE() che ti cerca considerando la stringa come minuscola, e la funzione INSTR che ti ricerca nella stringa (anche LIKE va bene), per ex:

    ...WHERE INSTR(LCASE(comune),'".strtolower($comune)."')
    Se nel menu c'è scritto PRA'GRANDE potresti eliminare gli accenti con un semplice str_replace("'", "", $valore)

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    487

    ok provero grazie

    Vivi intensamente, muori giovane e sarai un cadavere di bell' aspetto.

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    esiste anche ILIKE

  5. #5
    Utente di HTML.it L'avatar di eraclito
    Registrato dal
    May 2002
    Messaggi
    1,273
    se la ricerca è poi effettuata tramite menu a tendina penso sia meglio avere nel db una tabella separata comuni (che genererà il menu a tendina) e collegarla alla tabella principale.

    In questo modo eviti duplicazioni e la ricerca è + efficace.

    Ovviamente quando è possibile agre direttamente sul db..
    L'apprendere molte cose non insegna l'intelligenza
    Voglio avere dubbi più chiari

  6. #6
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    ridurre in minuscolo non è necessario se si cerca in campi char o varchar che non hanno impostato l'attribbuto binary. Le ricerche in mysql sono sempre case insensitive in questi campi. Lo diventano nei campi text o blob, char o varchar con l'attribbuto binary, oppure se lo si specifica esplicitamente nella query

  7. #7
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    io sono abituato a lavorare su postgres, effetivamente non ha specificato il DB.

    Ciao

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    487

    effettivamente..

    alla fine ho fatto una tabella con: in un record i comuni come sono stati inseriti,in un altro un id uguale per i comuni ripetuti cosi faccio un controllo sull'id
    Vivi intensamente, muori giovane e sarai un cadavere di bell' aspetto.

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.