Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: [mysql] Query con LIKE

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    15

    [mysql] Query con LIKE

    Salve a tutti

    avrei un problema con mysql. Vorrei fare una query (che serve per una funzione di autocompletamento) in modo da cercare indistintamente nome e cognome di un utente. Il nome ed il cognome sono su due campi differenti.

    Ecco la mia query

    • SELECT
      utenti.nome ,
      utenti.cognome
      FROM
      utenti
      WHERE
      utenti.cognome LIKE '%".$nome."%' OR
      utenti.nome LIKE '%".$nome."%'


    Il risultato e che mi cerca solo nel Cognome non nel nome. (la variabile $nome è l'imput del text di ricerca). Come posso fare in modo che ricerca indistintamente sia nel nome che nel cognome?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    97
    dovresti usare l'AND al posto dell'OR

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    15
    Niente da fare.....già provato con gli stessi risultati

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    97
    avevo letto male... in effetti per quello che devi fare è giusto usare l'OR... MAH!!!
    secondo me la query è giusta... l'errore forse è altrove

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    15
    io le ho provate tutte..... Faccio un esempio

    se scrivo Pinco Pallino: arrivo a Pinco tutto ok.... se continuo a scrivere Pallino non trova nulla!

    a questo punto dovrei trovare il modo di unire nome e cognome e poi fare il LIKE nella concatenazione.... faccio il CONCAT(nome,cognome) AS ris poi metto WHERE ris LIKE.... (Etc) e mi dice che la colonna ris non è presente nella tabella Grrrrrrr

    Qualcuno sa come fare?

    grazie

  6. #6
    Prov così...
    Codice PHP:
         $do mysql_query("(SELECT nome FROM utenti WHERE nome LIKE '%" $nome "%') UNION (SELECT cognome FROM utenti WHERE cognome LIKE '%" $cognome "%')"); 
    Cristiano
    ---
    Originariamente inviato da rebelia : solo un nerd puo' pensare di tacchinare in un forum di informatica

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    97
    Originariamente inviato da franzz82
    se scrivo Pinco Pallino: arrivo a Pinco tutto ok.... se continuo a scrivere Pallino non trova nulla!
    grazie
    è normale.. l'intera stringa che vai a cercare è "Pinco Pallino" sia nel nome che nel cognome, in cui invece sono contenute rispettivamente le stringhe distinte "Pinco" e "Pallino"

  8. #8
    Mi viene da pensare che il LIKE, sia case-sensitive, per ovviare a quanto, fai la query cosi:

    Codice PHP:
    SELECT utenti.nome ,utenti.cognome 
    FROM utenti 
    WHERE 
    LCASE
    (utenti.cognomeLIKE '%".strtolower($nome)."%' OR
    LCASE(utenti.nomeLIKE '%".strtolower($nome)."%' 
    ...::: DESIDERARE E' UMANO :::...
    ...::: POSSEDERE E' DIVINO :::...
    ...::: HAVE A NICE DAY :::...
    (¯`·.¸¸.->ĐĮ ĦΞŁŁ<-.¸¸.·`¯)
    http://www.djhellclub.com

  9. #9
    Guarda, la sensibilità è data dalle impostazioni (collation) della tabella; non dai comandi...
    Impostala a "latin1_swedish_ci"
    codice:
    ALTER TABLE utenti CHANGE 'nome' 'nome' TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL
    Cristiano
    ---
    Originariamente inviato da rebelia : solo un nerd puo' pensare di tacchinare in un forum di informatica

  10. #10
    Originariamente inviato da wider
    Guarda, la sensibilità è data dalle impostazioni (collation) della tabella; non dai comandi...
    Impostala a "latin1_swedish_ci"
    codice:
    ALTER TABLE utenti CHANGE 'nome' 'nome' TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL
    @ Nika90 : mi viene in mente un explode...

    EDIT: volevo premere modifica...
    Cristiano
    ---
    Originariamente inviato da rebelia : solo un nerd puo' pensare di tacchinare in un forum di informatica

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.