Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    ricerca nominativo

    Ciao a tutti,
    scusate, forse la domanda apparirà banale, ma non riesco a trovare una via d'uscita:
    come posso fare per cercare NOME e COGNOME, ed anche COGNOME e NOME, in un campo NOMINATIVO?

    mi spiego meglio:
    per motivi "logistici", non è possibile usare due campi (nome E cognome), ma un solo campo (nominativo) che include sia il nome che il cognome.
    Il nome registrato, per esempio, è Pinco Pallino.
    Quando si effettua la ricerca di "pinco pallino" è necessario eseguire la ricerca anche per "pallino pinco"
    usando il like, ovviamente non funziona (ovvero, funziona per pinco, funziona per pallino, funziona per pinco pallino, ma non funziona per pallino pinco)

    ps: lato server, uso php... se può servire... ma credo si possa risolvere direttamente in mysql...

  2. #2
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955

    Re: ricerca nominativo

    Originariamente inviato da gasparirob
    Ciao a tutti,
    scusate, forse la domanda apparirà banale, ma non riesco a trovare una via d'uscita:
    come posso fare per cercare NOME e COGNOME, ed anche COGNOME e NOME, in un campo NOMINATIVO?

    mi spiego meglio:
    per motivi "logistici", non è possibile usare due campi (nome E cognome), ma un solo campo (nominativo) che include sia il nome che il cognome.
    Il nome registrato, per esempio, è Pinco Pallino.
    Quando si effettua la ricerca di "pinco pallino" è necessario eseguire la ricerca anche per "pallino pinco"
    usando il like, ovviamente non funziona (ovvero, funziona per pinco, funziona per pallino, funziona per pinco pallino, ma non funziona per pallino pinco)

    ps: lato server, uso php... se può servire... ma credo si possa risolvere direttamente in mysql...
    Potresti fare:
    codice:
    select * from tabella where nominativo like '%variabile_parte_del_nome%' or like '%variabile_parte_del_cognome%'

  3. #3
    si, però dovrei sapere qual è il nome e quale il cognome...
    gia per i nominativi italiani sarebbe un problema (con il "di" davanti al cognome)...
    in realtà il vero problema è con i nominativi esteri.. quelli spagnoli (dove sono presenti diversi cognomi) o quelli orientali tipo "SAYED ABD EL NAIEM AHMED" (non ho scritto a caso, è DAVVERO un nominativo)
    dovrei esplodere l'intera stringa e cercare tutte le combinazioni...

    spero ci sia qualcosa di piu rapido...

  4. #4
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955
    Originariamente inviato da gasparirob
    si, però dovrei sapere qual è il nome e quale il cognome...
    gia per i nominativi italiani sarebbe un problema (con il "di" davanti al cognome)...
    in realtà il vero problema è con i nominativi esteri.. quelli spagnoli (dove sono presenti diversi cognomi) o quelli orientali tipo "SAYED ABD EL NAIEM AHMED" (non ho scritto a caso, è DAVVERO un nominativo)
    dovrei esplodere l'intera stringa e cercare tutte le combinazioni...

    spero ci sia qualcosa di piu rapido...
    No, non sono d'accordo.
    Lato DB hai detto che hai un campo nominativo che non puoi suddividere, ma lato GUI puoi creare due campi nome e cognome e quindi sai sempre la parte che compone il nome e quella che compone il cognome.

  5. #5
    Originariamente inviato da Joe Taras
    No, non sono d'accordo.
    Lato DB hai detto che hai un campo nominativo che non puoi suddividere, ma lato GUI puoi creare due campi nome e cognome e quindi sai sempre la parte che compone il nome e quella che compone il cognome.
    E come?

    di SAYED ABD EL NAIEM AHMED qual è il nome e qual è il cognome?

  6. #6
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955
    Originariamente inviato da gasparirob
    E come?

    di SAYED ABD EL NAIEM AHMED qual è il nome e qual è il cognome?
    Ma via GUI chi inserisce il "nominativo" tu come consultazione o il singolo utente?

  7. #7
    E' l'amministratore che inserisce il nominativo nel db... ma lui stesso non sa qual è il nome e quale il cognome (ed è questo il motivo per cui non si possono avere i campi separati)

    esempio limite è appunto SAYED ABD EL NAIEM AHMED, ma basti pensare anche a casi italiani come FRANCO ANDREA...

    quindi, siccome non è detto che la ricerca di un utente avvenga con lo stesso ordine in cui è avvenuta la memorizzazione, la query mi deve "scambiare" i termini di ricerca (ovvero: ho memorizzato FRANCO ANDREA, e la ricerca mi deve restituire FRANCO ANDREA sia se cerco FRANCO ANDREA sia se cerco ANDREA FRANCO... cosi come, nel caso di SAYED ABD EL NAIEM AHMED, devo poter trovare l'utente anche se cerco solo AHMED NAIEM o NAIEM AHMED)

  8. #8
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955
    Originariamente inviato da gasparirob
    E' l'amministratore che inserisce il nominativo nel db... ma lui stesso non sa qual è il nome e quale il cognome (ed è questo il motivo per cui non si possono avere i campi separati)

    esempio limite è appunto SAYED ABD EL NAIEM AHMED, ma basti pensare anche a casi italiani come FRANCO ANDREA...

    quindi, siccome non è detto che la ricerca di un utente avvenga con lo stesso ordine in cui è avvenuta la memorizzazione, la query mi deve "scambiare" i termini di ricerca (ovvero: ho memorizzato FRANCO ANDREA, e la ricerca mi deve restituire FRANCO ANDREA sia se cerco FRANCO ANDREA sia se cerco ANDREA FRANCO... cosi come, nel caso di SAYED ABD EL NAIEM AHMED, devo poter trovare l'utente anche se cerco solo AHMED NAIEM o NAIEM AHMED)
    Ok, anche se non mi convince molto il fatto che non si conosca a priori nome e cognome (non c'è un documento allegato??) a questo punto devi permutare le LIKE, creare tanti "token" uno per ogni spazio e ricercare la tua query con una serie di OR.

  9. #9
    Si, avevo pensato esattamente a quello...
    In questo momento sto provando con i MATCH AGAINST... penso di esserci riuscito... solo che di default la lunghezza minima di una parola da ricercare è 4 caratteri, e questo mi esclude le "DI" (cercare "DI GIROLAMO" equivale a cercare solo "GIROLAMO")
    E inoltre mi cerca le corrispondenze solo con i nomi interi e non con le sottostringhe (se cerco GIROLAM non esce nulla... devo cercare proprio GIROLAMO)

    Forse effettivamente è piu semplice spezzettare il nominativo e usare i LIKE...

  10. #10
    Originariamente inviato da gasparirob

    Forse effettivamente è piu semplice spezzettare il nominativo e usare i LIKE...
    Ripensandoci, in realtà come concetto è molto semplice, ma computazionalmente non credo: devo effettuare delle permutazioni sulla stringa da cercare... su 4 parole da cercare verrebbero 256 permutazioni (4!)... è vero che probabilmente nessuno mai ricercherà 4 parole... gia 2 sono sufficienti...

    Boh... sinceramente mi sembra piu "pulito" lavorare con il MATCH AGAINST... a tal proposito: è possibile effettuare la ricerca di una o piu parole in combinazione con il LIKE?
    nel senso: devo cercare DI FILIPPO GIROLAMO effettuando la ricerca di "FILIP GIROL" (e "GIROL FILIP")

    al momento sto usando la stringa:
    match(nome_cognome) against ('+$stringa' IN BOOLEAN MODE)

    dove $stringa rappresenta la chiave di ricerca sostituendo lo spazio con spazio e +
    (PIPPO FRANCO diventa PIPPO +FRANCO)

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