Allora ho trovato un ostacolo che mi impedisce di finire e soprattutto mina seriamente il mio equilibrio mentale:
ho strutturato alcuni campi del db con tabelle di questo genere per ospitare i campi checkbox:
fonti, soggetti .
una tabella fonti è fatta cosi:
E quella dei soggetti cosi
poi c'è una terza tabella con altri dati: id, nome, età, etc che recupero da select, textarea, input radio, senza problemi.
nella fase di inserimento , la tabella inserisce l'id del modulo nella tabella soggetti.
Nella fase di modifica il codice fa un inner joint, scorre la tabella fonti , se l'id coincide, allora la casella checkbox appare spuntata.
Questo è il codice di joint
codice:sql="SELECT tabella.id, tabella.nome, tabella.tempo,tabella.eta , " sql=sql&" tabella.datapub, " sql=sql&" tabellasoggetti.fonti, tabellafonti.fonti " sql=sql&" FROM (tabella INNER JOIN tabellasoggetti ON " sql=sql&" tabella.id = tabellasoggetti.id) INNER JOIN tabellafonti ON " sql=sql&" tabellasoggetti.fonti = tabellafonti.id " sql=sql&" where tabella.id='"&id&"';"
poi c'è il codice per la ricerca della maledetta casella di testo checcata
Ebbene : sei tabelle , con codice uguale (cambiano solo i nomi dei campi e qualche select o textarea messa diversamente) tre funzionano e tre non funzionano, nel senso che in tre il valore lo trova: scorre tabellafonti, quando c'è il valore corrispondente , spunta la casellina.codice:<% set rs1 = Server.CreateObject("ADODB.RecordSet") sql="select* from tabellafonti " rs1.open sql, conn_base, adlockoptimistic, adcmdtable if not rs1.eof then rs1.movefirst do while not rs1.eof trovato="" rs.movefirst%> <tr><td><%=rs1("fonti")%></td><td> <% do while not rs.eof %> <%if trim(rs1("id"))=trim(rs("fonti")) then trovato="checked" end if%> <%rs.movenext loop%> <input type=checkbox name="fonti" value="<%=rs1("id")%>;<%=rs1("fonti")%>" <%=trovato%>> <% rs1.movenext loop end if rs1.close set rs1=nothing
Nelle altre tre e non riesco a capire perchè cazzarola,non funziona:
le caselline rimangono vuote, eppure il dato c'è! Le tabelle vengono tutte scritte e aggiorarnate correttamente!!



Rispondi quotando