Select Multipla Su Sql

enionline

Nuovo Utente
20 Feb 2008
3
0
0
Innanzitutto salve a tutti, è da molto che seguo il forum e solo ora mi sono deciso ad iscrivermi.
Il mio problema è il seguente :
database tabella studente e tabella settore
nella tabella STUDENTE vi è un campo rif in cui vengono caricati i settori in cui lo studente è iscritto inserendo un numero che è l'ID del settore di appartenenza all'interno della tabella SETTORI (che comprende tutti i settori).

A questo punto io devo visualizzare nella scheda studente tutti i dati e tra questi riprendere i valori del campo RIF per caricare i dati corrispondenti nella tabella SETTORI.

<%
Dim rif
rif=rs("rif")
sql = "SELECT settore, sector,id FROM settori WHERE ID ='%"&rif&"%' "

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn ,3,3
rs.movefirst
do while not(rs.eof)
%>
<%=rs(0)%>
<%=rs(2)%>%
<%
rs.movenext
loop
rs.Close
set rs = Nothing
%>

e qui mi da errore ....
Tipo di errore:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][Driver ODBC Microsoft Access] Tipi di dati non corrispondenti nell'espressione criterio.
/schedaris.asp, line 299 (che sarebbe Set rs = Server.CreateObject("ADODB.Recordset"))

dove sbaglio ?
Grazie per la vostra disponiblilità.
 

lukeonweb

Utente Attivo
5 Mar 2003
5.175
13
38
46
Napoli
www.lucaruggiero.it
Ciao.

Innanzitutto prova a passare come cursore all'apertura del recordset solo 1:

rs.Open sql, conn, 1

In secondo luogo fammi capire una cosa: devi stampare a video un report con i dati del selettore e degli studenti, oppure devi selezionare un selettore e vedere quali sono gli studenti che vi appartengono?
 

enionline

Nuovo Utente
20 Feb 2008
3
0
0
Ciao,
il parametro numerico all'interno della cella RIF è l'ID corrispondente all'interno della TABELLA SETTORI.
Per cui esempio :
Tabella Studenti
Tipo - Studente
Nome - Pippo
rif - 1,2

Tabella Settori
ID - 1
Settore - matematica
Sector - aula a
ID - 2
Settore - Geografia
Sector - aula b

la scheda mi mostra
Studente Pippo
settore Matematica , Geografia

Praticamente devo far pescare dal database gli ID presenti nel campo RIF dello studente e mostrare i settori:

Utente Pippo
Matematica (aula A)
Geografia (aula b)

allora un problema l'ho risolto (non ho qui il codice qui, magari quando rientro lo posto) ma se il campo RIF contiene più di un numero ( tipo 1,2) naturalmente la mia select non va .

Per cui il problema è :
come faccio a fare ad un sql una select dove gli ID da cercare possono essere diversi e divisi da una virgola ?

Grazie per la tua disponibilità
 

lukeonweb

Utente Attivo
5 Mar 2003
5.175
13
38
46
Napoli
www.lucaruggiero.it
Dunque ho capito bene: devi mostrare a video tutti i dati delle due tabelle in funzione delle loro relazioni?

Ho capito benissimo la struttura relazionale delle tabelle che è corretta, quindi ti faccio un esempio.

Tu vuoi scrivere:

-----

SETTORE: Geografia
STUDENTE: Luca Ruggiero

SETTORE: Geografia
STUDENTE: Max Bossi

SETTORE: Storia
STUDENTE: Claudio Garau

-----

Giusto?

Se si, devi semplicemente lanciare la query che contenga una relazione scritta in SQL.

Nel tuo caso dovrebbe essere qualcosa del genere:

SELECT Studenti.Nome, Settori.Settore FROM Studenti, Settori WHERE Studenti.RIF = Settori.ID

Tieni presente che il campo RIF non può contenere più di un numero perchè, dovendo fare la JOIN (la relazione) con l'altra tabella, la relazione può essere fatta solo con tipi di dati uguali.

In sostanza il campo ID della tabella Settori dev'essere INT AutoIncrement, se usi MySQL, o Contatore se usi Access.

Allo stesso tempo il campo RIF della tabella Studenti dev'essere INT se usi MySQL o Numerico se usi Access.

Dato che ogni studente può avere più di un settore, puoi fare in due modi:

1. ripeti i dati dello studente più volte nella tabella Studenti, ogni volta con un RIF differente;

2. per evitare la ridondanza dei dati (ripetere dati uguali più volte) puoi ragionare diversamente: la tabella Settori resta uguale ed alla tabella Studenti elimini il campo RIF; creerai un'altra tabella,ad esempio Associazioni, dove ci saranno questi campi, tutti e tre numerici:

id (identificativo del record)
id_settore (identificativo del settore)
id_studente (identificativo dello studente)

In questo modo fai tutte le associazioni che vuoi e quando dovrai stampare a video i dati farai una JOIN su tre tabelle:

SELECT Studenti.Nome, Settori.Settore FROM Studenti, Settori, Associazioni WHERE Studenti.id = Associazioni.id_studente AND Settori.id = Associazioni.id_settore

Spero di essere stato abbastanza chiaro.

Ciao!
 

enionline

Nuovo Utente
20 Feb 2008
3
0
0
Grazie per la tua risposta , però i tipi di dati che voglio ottenere sono questi .

STUDENTE: Luca Ruggiero
SETTORE: Geografia ,Storia , Matematica

non voglio dividere gli studenti per settori (quello lo faccio già) ma nella scheda dello studente devono essere presenti i SETTORI indicati nel campo RIF.

credo che comunque sia impossibile fare una query su dati multipli all'interno di un campo.

Grazie per la tua pazienza
 

lukeonweb

Utente Attivo
5 Mar 2003
5.175
13
38
46
Napoli
www.lucaruggiero.it
Guarda, volendo nulla è impossibile, solo che, secondo me, ti sei complicato molto la vita con quella struttura del database: dovresti fare come ti ho suggerito.

In genere si parte sempre dal database: la visualizzazione poi, se il db è fatto bene, è una sciocchezza da fare.

Postami ESATTAMENTE la struttura delle tue tabelle, sia i nomi dei campi che i tipi di dato.

Ti indico come modificarli in funzione delle tue esigenze.

Ciao!
 
Discussioni simili
Autore Titolo Forum Risposte Data
F query e form con select multipla PHP 17
T recupero valori select multipla da android Javascript 3
bubino8 [PHP] Select multipla su piu tabelle PHP 3
P Problemi con select multipla PHP 12
A Visualizzare risultati ottenuti da una select multipla PHP 7
L select multipla MySQL 1
F Select multipla in asp-jscript Classic ASP 14
S Problema gestione select multipla Javascript 0
X Popolare una select a selezione multipla?!?! PHP 1
L Ripetere Campi disabilitando input in riferimento ad un valore della select jQuery 0
otto9due Ordinare option di una select Javascript 5
W MySQL ciclo in SELECT MySQL 0
W MySQL SELECT list dinamica MySQL 0
M Select Option dentro una Table jQuery 2
G Colorare menu select attraverso ricerca php PHP 0
L problema con query select PHP 2
F menù select dinamico da db in php PHP 3
D popolare campi tra th alla select PHP 36
M Estrarre valore con SELECT COUNT PHP 0
M Creare un campo input select quantità di un numero intero prelevato dal db PHP 3
L Select Dinamiche...da txt? PHP 3
E Php select option e ajax PHP 23
R Select concatenata che non funziona la seconda volta Ajax 3
L select join e sottrazione punti PHP 13
L input dati con inser into select ? PHP 4
V hierarchy-select jQuery 0
Emix Select concatenate php sql ajax PHP 2
J php, scegliere autista da select e mostrare se ha fatto un incidente PHP 8
Tommy03 Select in ordine per numero di record MySQL 7
T problema con select dinamica con jquery Javascript 0
J Far comparire e scomparire un div con un select Javascript 1
M Opzioni select da 1 a 200 PHP 0
I Fatal error: Query Failed! SQL: SELECT * INTO OUTFILE PHP 1
C input in sostituzione della select PHP 2
G Insert into select - Aiuto MySQL 0
max1974 autocomplete trigger select jQuery 0
X [Select] Valori chiave non presenti in un'altra tabella MySQL 2
M Estrarre dati da una select HTML PHP 3
MarcoGrazia jquery validate, necessità di validare almeno un elemento select su due jQuery 1
T [PHP] Autocompilazione input multiple da una select PHP 1
Alex_70 [PHP] Visualizzare foto tramite select PHP 0
S [PHP] aggiornamento table tramite select senza ricaricare la pagina PHP 5
psicomia Gestione funzione in javascript in tabella richiamare"textarea" valori preimpostati in "select" Javascript 2
M [PHP] Problema con query select PHP 2
C [PHP] Controllo <select> comportamento anomalo PHP 2
G [PHP] Select con opzioni dipendenti da un'altra select PHP 3
L [Javascript] Select option in campi input Javascript 4
M [PHP] Problemi con select PHP 6
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
S [ASP] SALVARE VALORE SELECT OPTION SU CAMPO TABELLA ACCESS Classic ASP 9

Discussioni simili