ricerca in multi select field
Regole del forum
Nel forum è vietato fare pubblicità senza avere l'autorizzazione dello staf di Netspecial.
Nel forum è vietato fare pubblicità senza avere l'autorizzazione dello staf di Netspecial.
ricerca in multi select field
Salve a tutti, scrivo per un consiglio.
ho usato in alcun form il campo multiselect esempio per i codici utente
ora nel db il campo viene memorizzato con i valori chiave separati dal carattere da me scelto: '-'
2-9-16-19-20-22 ecc..
normalmente prima di usare scriptcase gli stessi valori li memorizzavo in questo modo:
-2-9-16-19-20-22- ecc..
a questo punto come posso far funzionare la ricerca? prima basta un like %-Valore-%
ora l'assenza del carattere di separazione in testa e in coda non mi consente più di usare questo tipo di ricerca
e di contro like %valore% chiaramente fallisce (il valore 2 è presente sia sul primo che sull'ultimo)..............
Vi chiedo qualche suggerimento grazie.
ho usato in alcun form il campo multiselect esempio per i codici utente
ora nel db il campo viene memorizzato con i valori chiave separati dal carattere da me scelto: '-'
2-9-16-19-20-22 ecc..
normalmente prima di usare scriptcase gli stessi valori li memorizzavo in questo modo:
-2-9-16-19-20-22- ecc..
a questo punto come posso far funzionare la ricerca? prima basta un like %-Valore-%
ora l'assenza del carattere di separazione in testa e in coda non mi consente più di usare questo tipo di ricerca
e di contro like %valore% chiaramente fallisce (il valore 2 è presente sia sul primo che sull'ultimo)..............
Vi chiedo qualche suggerimento grazie.
Re: ricerca in multi select field
porta in un array e fai la ricerca li
Rino Lo Turco
Consulente Informatico; Analista e Sviluppatore; ex IT Manager; Cons. Direzionale di Organizzazione; Consulente Tecnico legale; Esperto protezione dati personali; Internet Service Provider
felice utente e fruitore di ScriptCase
Consulente Informatico; Analista e Sviluppatore; ex IT Manager; Cons. Direzionale di Organizzazione; Consulente Tecnico legale; Esperto protezione dati personali; Internet Service Provider
felice utente e fruitore di ScriptCase
Re: ricerca in multi select field
aggiungi delle condizioni, se prima usavi like '%-Valore-%' adesso prova ad usareSandrol ha scritto: 04 ago 2021, 08:57
2-9-16-19-20-22 ecc..
normalmente prima di usare scriptcase gli stessi valori li memorizzavo in questo modo:
-2-9-16-19-20-22- ecc..
a questo punto come posso far funzionare la ricerca? prima basta un like %-Valore-%
( like '%-Valore-%' OR like 'Valore-%' OR like '%-Valore' )
così prendi tutti i casi "in mezzo" e gli eventuali casi in cui il valore sia il primo o l'ultimo.
Verificherei anche cosa viene memorizzato nel campo se si sceglie un unico valore, ed eventualmente aggiungere anche quel caso se non ricadesse in quelli messi prima.
Re: ricerca in multi select field
Grazie per le risp, interessante quella di Vincenzo io ho risolto in questo modo:
Ho creato un campo per la ricerca e ho impacchettato la stringa aggiungendo 0 non significativi nell'evento onbiforinsert e onbiforupdate.
$tab_utenti=explode('-',{idClientManager});
for ($i = 0, $n = count($tab_utenti) ; $i < $n ; $i++)
{
$tab_utenti[$i] = sprintf('%05d', $tab_utenti[$i]);
}
{filtro_ClientManager}=implode("-", $tab_utenti);
Comunque la soluzione di Vincenzo mi sembra migliore della mia provo con una verifica per vedere se funziona, quando il campo ha una sola selezione memorizza solo il valore.
Ciao.
Ho creato un campo per la ricerca e ho impacchettato la stringa aggiungendo 0 non significativi nell'evento onbiforinsert e onbiforupdate.
$tab_utenti=explode('-',{idClientManager});
for ($i = 0, $n = count($tab_utenti) ; $i < $n ; $i++)
{
$tab_utenti[$i] = sprintf('%05d', $tab_utenti[$i]);
}
{filtro_ClientManager}=implode("-", $tab_utenti);
Comunque la soluzione di Vincenzo mi sembra migliore della mia provo con una verifica per vedere se funziona, quando il campo ha una sola selezione memorizza solo il valore.
Ciao.
Re: ricerca in multi select field
Ho effettuato la prova e sembra che funzioni bene discrimina tra i valori 2- e 22- / -2 -22
Ciao
Ciao
Re: ricerca in multi select field
Non hai specificato che database usi, ma se usi MYSQL, potresti provare a vedere se fa per te la funzione
FIND_IN_SET(str,strlist)
la funzione cerca un valore, in una stringa di valori separatati da virgole, quindi nel tuo caso prima di questa funzione devi chiamare una funzione di REPLACE per cambiare il carattere separatore, ma almeno resta tutto in una query sul database senza scomodare cicli in PHP.
FIND_IN_SET(str,strlist)
la funzione cerca un valore, in una stringa di valori separatati da virgole, quindi nel tuo caso prima di questa funzione devi chiamare una funzione di REPLACE per cambiare il carattere separatore, ma almeno resta tutto in una query sul database senza scomodare cicli in PHP.
Re: ricerca in multi select field
Ciao Vincenzo, grazie per l'ulteriore suggerimento, provo anche questo ma ritengo valido il tuo primo (anche quello si riduce a una query) il mio dubbio era se distingueva tra i valori "ripetuti" es: 2 e 22 - 5 55 cosa che in effetti avviene risolvendo il problema.
Dimenticavo MYsql......
Dimenticavo MYsql......
Re: ricerca in multi select field
Non sapendo le dimensioni della tabella da interrogare, mi chiedevo se FIND_IN_SET + REPLACE fosse più performante di tre LIKE, dove probabilmente per numero di record limitati non ci sono apprezzabili differenze nei tempi di risposta.Sandrol ha scritto: 20 ago 2021, 09:29 Ciao Vincenzo, grazie per l'ulteriore suggerimento, provo anche questo ma ritengo valido il tuo primo (anche quello si riduce a una query) il mio dubbio era se distingueva tra i valori "ripetuti" es: 2 e 22 - 5 55 cosa che in effetti avviene risolvendo il problema.
Dimenticavo MYsql......
Re: ricerca in multi select field
Si nel mio caso si tratta di una tab con pochi records relativa ai commerciali dell'azienda. pesavo che volendo si può anche evitare il REPLACE modificando il campo di selezione nella form di scriptcase da "-" a "," . Quando ho 5 minuti lo provo Ciao...
Chi c’è in linea
Visitano il forum: Ahrefs [Bot] e 15 ospiti