38 messaggi dal 08 ottobre 2003
Salve a tutti.
Ho un problrma per incolonnare dei record di un database.
Attraverso il codice sotto riportato riesco ad incolonnare i record, ma dovrei riuscire ad andare oltre.
Mi spiego nel database ho i seguenti campi id, pagina, categoria, notizia.
Dovrei tirare su i record come link (e fin qui ci sono) ed incolonnarli per categoria, l'attuale codice me li incolonna a seguire come è visibile in questa prova http://www.cischi.com/incolonna2.asp mentre io vorrei ottenere un risultato simile a questo http://www.basebog.it/links.asp
Se qualcuno sa dirmi come incrementere il codice seguente lo ringrazio anticipatamente e prometto di pregare per la sua beatificazione...


Set rs=Server.CreateObject("ADODB.Recordset")
strSQL="SELECT * FROM newslinks"
rs.Open strSQL,cn,0,1
%>
<TABLE>
<%do While not RS.EOF%>
<TR>
<TD><% link=rs("notizia")%><a href='<%=rs("pagina")%>' target="_blank" class="lbianco"><%=link%></a></TD>
<% rs.MoveNext
if rs.eof then %></tr>
<% rs.close
exit do
end if %>
<TD><% link=rs("notizia")%><a href='<%=rs("pagina")%>' target="_blank" class="lbianco"><%=link%></a><TD>
<% RS.MoveNext %></TR>
<% loop %>
</TABLE>


Grazie di nuovo e buona giornata
593 messaggi dal 09 ottobre 2002
www.dotnetside.org
Hai idea di come utilizzare gli array?

Se si, la risposta stà nella creazione di un array che contenga le distinte categorie popolato con una SELECT DISTINCT;
Un ciclo iterato per ogni elemento dell'array precedente che esegua una SELECT sui records appartenenti ad ogni singola categoria e popoli un array corrispondente al resultset.

Ottenuti gli array costruirai l'output HTML scandendo l'array madre (categorie) e il relativo subarray dei records.

In alternativa, se preferisci, puoi fare una una prima query SELECT DISTINCT come detto sopra e, impostato un ciclo WHILE NOT objRS.EOF ... WEND, per ogni iterazione esegui una sottoquery per listare i records che soddifano la condizione di appartenenza alla categoria corrente avendo cura, ovviamente, di produrre contestualmente l'output HTML necessario.

Ciao

P.S.: io punterei sulla prima soluzione anche perchè, attribuiti magari gli array ad altrettante variabili application, se ne potrebbero riutilizzare i contenuti all'interno della tua applicazione senza interrogare ripetutamente il DB.
Ma tutto dipenderà naturalmente dall'uso che ne vorrai fare.

Pochi post. Anzi, quasi quasi spengo
http://www.dotnetside.org/
38 messaggi dal 08 ottobre 2003
Ho provato a utilizzare un arry ma non sono cosi forte con il linguaggio e per il momento ottengo solo questa cosa funzionante ma cosi com'è non va bene anche perche non riesco più ad ottenere neanche il risultato come link.
Quello che ho fatto e il seguente script:

<%
Set cn=Server.CreateObject("ADODB.Connection")
cn.Open = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("news.mdb")
Set rs=Server.CreateObject("ADODB.Recordset")
strSQL="SELECT notizia, pagina, categoria FROM newslinks"
rs.Open strSQL,cn,0,1
arrdati=rs.getrows()
rs.close
set rs=nothing
cn.close
set cn=nothing
response.write "<table><tr><td>"
for conta=0 to ubound(arrdati,2)
response.write arrdati(0,conta)
if ((conta+1) mod 5)=0 then
response.write "</td><td>"
else
response.write "<br>"
end if
next
response.write "</td></tr></table>"
erase arrdati
%>

ora iniziero a provare ad inserire il DISTINCT ma non so se quello che ho fatto fino ad ora va bene.

Scusate ma sono un novellino.

NB. (Osservazione per i moderatori o i responsabili del forum) Questo forum non funziona bene su Mac, ne con safari ne con firefox, ho dovuto riesumare un vecchio explorer per mac che non fanno neanche più.
I problemi che riscontro non sono di funzionamento ma di spaginazione e nello spaginarsi ad esempio i pulsanti "anteprima" e "aggiungi messaggi" finiscono sotto la grafica laterale di destra e non si riescono a cliccare.
3.122 messaggi dal 16 maggio 2002
Basta eseguire la query iniziale ordinando i record per categoria.

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!
38 messaggi dal 08 ottobre 2003
Funziona!!!!!
Grazie mille, ma mi manca un'altra risposta al post precedente, come posso visualizzarli in modo che siano link?

Nel mio primo tentativo che ho postato con questo codice riuscivo ad ottenere il link camuffato dal testo:
<TD><% link=rs("notizia")%><a href='<%=rs("pagina")%>' target="_blank" class="lbianco"><%=link%></a></TD>

Adesso sono incolonnati per categoria ma sono testuali e basta.

Inoltre, domanda extra, è possibile visualizzare sopra ogni gruppo la relativa categoria?
3.122 messaggi dal 16 maggio 2002
Io ti avevo consigliato di _ordinare_ i record per categoria, non di _raggrupparli_ (come invece vedo dalla pagina che hai linkato, la quale presenta un errore).

Ordinandoli come ti ho consigliato ottieni dei `blocchi' di record con la stessa categoria. Per separare tali blocchi (cioè per sapere dove finisce una categoria e dove ne inizia un'altra) basta che tieni in memoria il valore precedente (diciamo, con molta fantasia, nella variabile `categoria') e lo confronti che quello che leggi nel momento. Se sono uguali si tratta ancora della stessa categoria. Se sono diversi allora la categoria è cambiata, ne stampi il nome come titolo della nuova `sezione' e aggiorni il valore della variabile `categoria'.

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!
38 messaggi dal 08 ottobre 2003
No scusami ma forse c'è un mal'inteso la pagina su cui stò lavorando è questa qui: http://www.cischi.com/incolonna.asp ed ho seguito il tuo consiglio di incolonnare ordinando per categoria:
strSQL="SELECT notizia, pagina, categoria FROM newslinks order by categoria"
ed effettivamente ho ottenuto dei `blocchi' di record con la stessa categoria.

Ho bisogno di ottenere che siano link e che la categoria sia il titolo del blocco.

Questo è il codice della pagina in questione.

<%
Set cn=Server.CreateObject("ADODB.Connection")
cn.Open = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("news.mdb")
Set rs=Server.CreateObject("ADODB.Recordset")
strSQL="SELECT notizia, pagina, categoria FROM newslinks order by categoria"
rs.Open strSQL,cn,0,1
arrdati=rs.getrows()
rs.close
set rs=nothing
cn.close
set cn=nothing
response.write "<table><tr><td>"
for conta=0 to ubound(arrdati,2)
response.write arrdati(0,conta)
if ((conta+1) mod 5)=0 then
response.write "</td><td>"
else
response.write "<br>"
end if
next
response.write "</td></tr></table>"
erase arrdati
%>
3.122 messaggi dal 16 maggio 2002
Ah scusa, avevo visto l'altra pagina :)

Per i link devi usare la solita sintassi
<a href="pagina_da_linkare">link</a>

suppongo (dato che non uso le ASP da anni) che la sintassi per te sia
response.write "<a href=""" & arrdati(1,conta) & """>" & arrdati(0,conta) & "</a>"

ma non ci metterei la mano sul fuoco :)

Prova e fammi sapere.

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!

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.