4 messaggi dal 12 giugno 2015
Prima di tutto ciao a tutti, mi sono appena iscritto
E' da parecchio tempo che non programmo piu' e non sono sicuro di aver postato nel forum corretto
Uso Dreamweaver per creare le mie pagine in ASP VBScript

La mia domanda e' questa
Nella prima pagina ho creato un form con un checkbox dal nome Giocatori
All'interno di questo checkbox il value e' il campo ID di una tabella di DB

<input type="checkbox" name="Giocatori" value="<%=(Giocatori.Fields.Item("ID").Value)%>" id="Giocatori">

Dunque ho creato un Repeat Region per creare tanti checkbox quante sono le string presenti nella tabella

Sin qui tutto ok. Il tasto submit carica la pagina successiva e il Request.Form mi restituisce i valori del checkbox in una variabile

Il problema nasce ora.
Uso quella variabile per creare una query di questo tipo

SELECT * FROM Cagliari WHERE ID <> (dal valore presente nella variabile)

Se nella pagina precedente ho selezionato un solo checkbox funziona
Il valore della variabile sara' il campo ID selezionato e la query gira

Ma se i checkbox sono piu' di uno, la query mi restituisce un errore
Questo perche' la variabile avra' tutti i valori degli ID selezionati separati da una virgola

Come posso fare a creare un array che mi permetta di far funzionare la query?
Grazie mille
cambia la query da
id<>

a
id not in (xxx)

dove xxx sono i tuoi valori separati da virgola oppure, nel caso unico, solo il valore selezionato.

Ormai programmano tutti... ma la professionalità appartiene a pochi
4 messaggi dal 12 giugno 2015
purtroppo non funzionerebbe
il problema non è la query ma il valore presente nella variabile Request.Form
Non coinciderebbe con nessun id presente nella tabella del DB
Per questo ho bisogno di trasformare quella variabile creata con un Request.Form in un array e, così, dividere i valori in più variabili e poi usarle nella query
Non coinciderebbe con nessun id presente nella tabella del DB

Spiegati meglio

Ormai programmano tutti... ma la professionalità appartiene a pochi
4 messaggi dal 12 giugno 2015
Esempio:

In tabella abbiamo tre stringhe con differenti id
Id / Giocatore / Ruolo / ecc
1 / Sau / Attaccante / ecc
2 / Conti / Mediano / ecc
3 / Balzano / Terzino dx / ecc


Nella pagina precedente creo un elenco checkbox con un Repeat region
Gli id dei vari checkbox che si creano dinamicamente corrispondono agli id presenti nella tabella
Se seleziono due checkbox del form e premo sul pulsante invia, nella pagina successiva il valore della variabile creata dal Request.Form darebbe come risultato i due valori divisi da una virgola.

Esempio:
Ho selezionato Sau e Balzano
Il valore della variabile sarà uguale a: 1, 3

Non esiste nessun id con il valore di "1, 3" e quindi la query risponde con un errore
Dividendo il Request.Form in tante variabili quanti sono i checkbox selezionati, avrei risolto il problema, perché avrei due variabili, una con valore 1 e l'altra con valore 3
Poi dovrei usare l'array per creare la query, e questo vedrò se è una cosa semplice da fare oppure no. Ma intanto mi serve superare il primo scoglio, ovvero quello della variabile col valore del Request.Form
89 messaggi dal 13 aprile 2004
Il consiglio di Manuel è corretto.
Puoi utilizzare NOT IN (...). Che nel tuo esempio diventa:

SELECT * FROM Cagliari WHERE ID NOT IN (1, 3)

e ti ritornerebbe:

2 / Conti / Mediano / ecc

E lo potresti risolvere con una concatenazione di stringhe se sei sicuro di non creare problemi si sicurezza. Inoltre funzionarebbe anche con un solo checkbox selezionato perchè otterresti, supponendo che sia il 3 selezionato :

SELECT * FROM Cagliari WHERE ID NOT IN (3) ottenendo:

1 / Sau / Attaccante / ecc
2 / Conti / Mediano / ecc

Viceversa le ipotesi che vorresti fare tu (array) ti creerebbero difficoltà nella gestione poichè dovresti riunire le risposte delle singole query con eliminazione dei duplicati.
4 messaggi dal 12 giugno 2015
come ritorno a bruxelles a settembre lo riprovo
not in effettivamente non l'ho usato
grazie

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.