Ciao a tutti,
il titolo del post è tutto un programma, ma proprio non sapevo come chiamarlo![]()
il mio problema è questo,
in pratica ho 3 tabelle di access, uno "essenze" e l'altra "associazione_essenze" e l'altra "articoli"
in pratica ad ogni articolo sono associate un certo numero di essenze,
avendo come punto di riferimento l'"id_articolo"(tabella articoli) mi faccio stampare l'elenco delle essenze "essenze" e seleziono il checkbox nel caso in cui all'essenza x è associato il mio articolo y.
le 3 tabelle di access sono strutturate cosi'
tabella "articoli"
campi
id_articolo
tabella "essenze"
campi
id
nome_essenza
file
tabella "associazione essenze"
campi
id
id_articolo
id_essenza
questo il mio codice che mi permette di selezionare tutte le essenze esistenti ed in base all'id_articolo di vericare se sono associate a ques'ultimo e in caso affermativo "chekkare" la checkbox!!!
<form action="../essenze/conferma_modifica_associa_essenze.asp" method="post">
sql= "select * from essenze order by nome_essenza"
RS.open sql,conn,3,3
if not rs.eof then
%>
<%do while not rs.eof
sql1="SELECT id_essenza FROM associazione_essenze where id_articolo = "&id
rs1.open sql1,conn,3,3
ck = ""
if not rs1.eof then
do while not rs1.eof
if rs("id") = rs1("id_essenza") then ck= "checked" end if
rs1.movenext
Loop
end if
%>
<tr>
<td width="311" bgcolor="#EDEDED" height="8">
<font size="2"><%=rs("nome_essenza")%></font></td>
<td width="224" bgcolor="#EDEDED" height="8">
<p align="center"><input type="checkbox" name="essenza" value="<%=rs("id")%>" <%=ck%>>
</td>
</tr>
<%
rs1.close
rs.movenext
Loop
%>
<input type="submit" value="Conferma">
</form>
fin qui(in visualizzazione) nessun problema, il problema si verifica quando per esempio ad un prodotto(id_articolo) sono associate 2 essenze
quindi la tabella "associazione_essenze" avrà 2 record
per esempio
id_articolo id_essenza
1 10
1 11
l'aricolo con id_articolo 1 ha 2 essenze associate.ora, se io volessi eliminare un'essenza a lui associata non faccio nient'altro che desezionare il checkbox e cliccare sul submit "Conferma" e vado alla pagina successiva "conferma_modifica_associa_essenze.asp"!!!
in questa pagina faccio questo:
in pratica aggiorno la tabella "associazione_essenze" ma non riesco ad eliminare il record che ho deselezionato nella pagina precedente
(se non è più chekkato eliminalo dalla tabella)
come posso fare????
Call openConn(conn,rs)
id_articolo = session("id")
id_essenza = request("essenza")
array_essenze = ""
'creo gli elementi dell'array_recapiti
array_essenze= id_essenza
'splitto la stringa ","
array_essenze=split(array_essenze,",")
'ricavo il numero di elementi dell'array
numero_elementi_array = ubound(array_essenze)
response.write numero_elementi_array
if numero_elementi_array = -1 then
sql= "delete* from associazione_essenze where id_articolo = "&id_articolo
RS.open sql,conn,3,3
%><center><%response.write "Modifica/inserimento essenza/e avvenuto con successo"%></center><%
response.end
else
for each elemento in array_essenze
sql = "select * from essenze where id = "&elemento&" "
response.write sql
RS.open sql,conn,3,3
rs.close
sql= "select * from associazione_essenze where id_articolo = "&id_articolo&" and id_essenza = "&elemento
RS.open sql,conn,3,3
if rs.eof then
rs.close
rs.open "select * from associazione_essenze where id_articolo = "&id_articolo&" and id_essenza = "&elemento
'aggiungo un nuovo record
rs.addnew
rs("id_articolo")=id_articolo
rs("id_essenza")=elemento
rs.update
end if
rs.close
next
%>
<center><%=("Modifica essenza/e avvenuto con successo")%></center>
<%
End If
%>
spero di essere stato chiaro e non troppo lungo![]()
grazie a tutti
ciao

Rispondi quotando