Selezione da ordine alfabetico per tipo

snakefrancesco

Utente Attivo
4 Mag 2008
33
0
0
Salve, premetto di essere un principiante, gestisco un sito sui videogiochi in asp con database per gestire gli articoli, il mio problema risiede nell'ordinare gli articoli in ordine alfabetico cioè da una lista di lettere. Per farvi capire meglio vi mostro il sito http://www.retrogaming.it

Allora una volta entrati nel sito l'utente sceglie una console dalla lista sistemi, clicca ed entra nella pagina console.asp?id=(console) e in questa pagina compaiono solo i giochi della console scelta e fin qui funziona, ora io vorrei che una volta entrati nella pagina console.asp?id=(console) appaia una lista di lettere (A,B,C ecc.) e cliccando su una lettera appaia la lista di articoli (articolo.asp?id=) corrispondenti alla lettera e alla console scelta.

Vi mostro il codice presente nella pagina console.asp:

<!--#include file="connessione.asp"-->
<%idx = request("id")%>


<%
Set RSa = Server.CreateObject("ADODB.Recordset")
RSa.ActiveConnection = con
sqlString = "select id from console where lcase(nome) = '" & lcase(idx) & "'"
RSa.open sqlString
idr = rsa("id")
ok = -1
Set RS = Server.CreateObject("ADODB.Recordset")
RS.ActiveConnection = con
sqlString = "SELECT * from articoli WHERE attivo = " & ok & " AND console =" & idr
RS.open sqlString
while not rs.eof
foto = rs("foto1")
if foto = "" or isnull(foto) then
foto = "vuota.jpg"
end if

Set RSb = Server.CreateObject("ADODB.Recordset")
RSb.ActiveConnection = con
sqlString = "select nome from console where id=" & rs("console")
RSb.open sqlString
%>
<p class="testo">
<a class="testol" href="articolo.asp?id=<%=rs("id")%>"><img src="img.aspx?img=/public/<%=foto%>&height=60" alt="<%=rs("titolo")%>" hspace="5" border="0" align="left"><b><font color="#C40014"><%=rs("titolo")%></font></b></a><br>Sistema: <%=rsb("nome")%><br>Anno: <%=rs("anno")%>
<%rs.movenext
wend%>

Grazie di tutto:)
 

PoLe

MRW Moderator
6 Giu 2005
2.210
3
0
38
.: Venezia :.
www.bzconsulting.it
Ciao e benvenuto :)

Per fare ciò che ti occorre, nel link di ogni lettera punterai a
console.asp?id=<%=request.querystring("id")%>&lettera=A

A quel punto, alla WHERE della query della pagina console.asp aggiungi "AND articolo LIKE '" & request.querystring("lettera") & "%'

:byebye:
 

snakefrancesco

Utente Attivo
4 Mag 2008
33
0
0
Grazie per la risposta PoLe, ci ho provato ma non ci riesco mi da sempre errore. Potresti mostrarmi come fare? sono ancora una schiappa:mad:

Grazie per tutto
 

lukeonweb

Utente Attivo
5 Mar 2003
5.176
10
38
43
Napoli
www.lucaruggiero.it
Tu hai:

sqlString = "SELECT * from articoli WHERE attivo = " & ok & " AND console =" & idr

Devi modificare la variabile che contiene la query cosi:

Dim lettera
lettera = Server.HTMLEncode(Request.QueryString("lettera"))

sqlString = "SELECT * from articoli WHERE attivo = " & ok & " AND console =" & idr

If Len(Trim(lettera)) = 1 Then
sqlString = sqlString & " AND titolo LIKE '" & lettera & "%'"
End If

... o qualcosa del genere... prova!

Attenzione:

1. non so se il campo in cui vuoi effettuare la ricerca per iniziale si chiama "titolo" in caso modificalo col suo nome;

2. nella ricerca per LIKE ho usato il carattere % che vale per MySQL, mentre per Access devi usare * quindi:

sqlString = sqlString & " AND titolo LIKE '" & lettera & "*'"

Fammi sapere!
 

snakefrancesco

Utente Attivo
4 Mag 2008
33
0
0
Niente da fare ho fatto tutto come mi hai descritto ma nulla mi esce solo la lista di lettere e quando ci clicco sopra non appare nulla...

<a href="console.asp?id=<%=request.querystring("id")%>&lettera=A">A</a>
</td>
<td width="5%">
<a href="console.asp?id=<%=request.querystring("id")%>&lettera=B">B</a>
</td>
<td width="5%">
<a href="console.asp?id=<%=request.querystring("id")%>&lettera=C">C</a>
</td>
<td width="5%">
<a href="console.asp?id=<%=request.querystring("id")%>&lettera=D">D</a>
</td>...
<td width="5%">
<a href="console.asp?id=<%=request.querystring("id")%>&lettera=Z">Z</a>
</td>

</tr>
</table>
<%
Set RSa = Server.CreateObject("ADODB.Recordset")
RSa.ActiveConnection = con
sqlString = "select id from console where lcase(nome) = '" & lcase(idx) & "'"
RSa.open sqlString
idr = rsa("id")
ok = -1
Set RS = Server.CreateObject("ADODB.Recordset")
RS.ActiveConnection = con
Dim lettera
lettera = Server.HTMLEncode(Request.QueryString("lettera"))
sqlString = "SELECT * from articoli WHERE attivo = " & ok & " AND console =" & idr
If Len(Trim(lettera)) = 1 Then
sqlString = sqlString & " AND titolo LIKE '" & lettera & "*'"
End If
RS.open sqlString
while not rs.eof
foto = rs("foto1")
if foto = "" or isnull(foto) then
foto = "vuota.jpg"
end if

Set RSb = Server.CreateObject("ADODB.Recordset")
RSb.ActiveConnection = con
sqlString = "select nome from console where id=" & rs("console")
RSb.open sqlString
%>
<p class="testo">
<a class="testol" href="articolo.asp?id=<%=rs("id")%>"><img src="img.aspx?img=/public/<%=foto%>&height=60" alt="<%=rs("titolo")%>" hspace="5" border="0" align="left"><b><font color="#C40014"><%=rs("titolo")%></font></b></a><br>Sistema: <%=rsb("nome")%><br>Anno: <%=rs("anno")%>
<%rs.movenext
wend%>

Uso Access quindi ho messo * poi la colonna da dove deve cercare per lettera è "titolo" quindi stava bene, per il resto non so cosa cambiare...:crying:
 

lukeonweb

Utente Attivo
5 Mar 2003
5.176
10
38
43
Napoli
www.lucaruggiero.it
Un errore c'è... dopo la creazione della stringa SQL di cui al mio precedente messaggio, apri il recordset:

RS.open sqlString

ma ci manca qualcosa, ovvero l'associazione della connessione ed il cursore.

Modifica la riga che ti ho scritto sopra cosi:

RS.open sqlString, con, 1

Fammi sapere.
 

snakefrancesco

Utente Attivo
4 Mag 2008
33
0
0
Fatto ma nulla. Il codice ora è questo:

Set RS = Server.CreateObject("ADODB.Recordset")
RS.ActiveConnection = con
Dim lettera
lettera = Server.HTMLEncode(Request.QueryString("lettera"))
sqlString = "SELECT * from articoli WHERE attivo = " & ok & " AND console =" & idr
If Len(Trim(lettera)) = 1 Then
sqlString = sqlString & " AND titolo LIKE '" & lettera & "*'"
End If
RS.open sqlString, con, 1
while not rs.eof
foto = rs("foto1")
if foto = "" or isnull(foto) then
foto = "vuota.jpg"
end if

Il risultato è che ora mi appare la lista di lettere e sotto tutte le recensioni della console selezionata, quando io clicco su una lettera non ricava nulla resta solo la lista di lettere.

http://www.retrogaming.it/console.asp?id=Amiga

Grazie per la disponibilità Lukeonweb:fonzie:
 

lukeonweb

Utente Attivo
5 Mar 2003
5.176
10
38
43
Napoli
www.lucaruggiero.it
Il sito è fighissimo, complimenti :)

Si tratta di recensione giochi, vero???

Veniamo a noi. Fammi una cortesia, prima di aprire il recordset, stampa a video la variabile contiene la stringa SQL, quindi modifica un attimo il codice cosi:

...
End If
Response.Write sqlString
RS.open sqlString, con, 1
...

Naturalmente devi solo aggiungere:

Response.Write sqlString

dove ti ho indicato.

Fai questa prova ed avvisami quando hai finito che do un occhio (lascia il response write online per un po), in modo che cerco di capire che cavolo di query stiamo tentandodi eseguire :)
 

snakefrancesco

Utente Attivo
4 Mag 2008
33
0
0
Grazie per i complimenti, si è un sito sui videogiochi d'epoca con uno sguardo a quelli nuovi:)

Comunque ho fatto come hai detto, ormai pendo dal tuo sapere, speriamo bene! :fonzie:
 

lukeonweb

Utente Attivo
5 Mar 2003
5.176
10
38
43
Napoli
www.lucaruggiero.it
Perfetto, quindi vedo, cliccando sulla V:

SELECT * from articoli WHERE attivo = -1 AND console =16 AND titolo LIKE 'V*'

Ovvero quel che mi aspettavo.

Un paio di cose: attivo = -1 è giusto? è un campo numerico? comunque non risolve il problema perchè c'è anche senza la lettera...

SELECT * from articoli WHERE attivo = -1 AND console =16

Per quanto mi stia sulle scatole =16 senza lo spazio (= 16) comunque non risolve nulla... quindi una domanda: il campo su cui effettuiamo la ricerca con LIKE si chiama titolo?

Se si, prova a scaricare il file Access in locale ed esegui la query:

SELECT * from articoli WHERE attivo = -1 AND console =16 AND titolo LIKE 'V*'

per V o per una lettera che sai che contiene giochi, direttamente attraverso Access, nella scheda Query ed eseguendola attraverso l'SQL di Access.

E' diventata una qustione di principio, fammi sapere ;)
 

snakefrancesco

Utente Attivo
4 Mag 2008
33
0
0
Ho fatto come hai detto e stranamente su Access se eseguo la Query mi da i risultati giusti!

la Query è:

SELECT * from articoli WHERE attivo = -1 AND console =16 AND titolo LIKE 'A*' (ho cambiato solo la lettera V con la A)

da "console = 16" (AMIGA) ricava 4 recensioni con la lettera A ed è giusto.

Ora come procedo???
 

lukeonweb

Utente Attivo
5 Mar 2003
5.176
10
38
43
Napoli
www.lucaruggiero.it
Prova a sosituire (nella pagina ASP) il carattere * con % nella porzione di codice dopo LIKE, quindi:

If Len(Trim(lettera)) = 1 Then
sqlString = sqlString & " AND titolo LIKE '" & lettera & "%'"
End If

Fammi sapere.

Approfitto per un piccolo OT: mandami un messaggio privato e spiegami esattamente di cosa tratta il sito e che scopo ha... sono interessato ad un progetto del genere, se è quello che ho in mente, quindi mi interesserebbe ipotizzare delle collaborazioni ;)
 

snakefrancesco

Utente Attivo
4 Mag 2008
33
0
0
Evvaiiii! Ce l'abbiamo fatta!!! :elvis: grande Luke!

Ci sentiamo in privato, grazie ancora di tutto.

Un ultimo aiuto. Io ho fatto in modo che quando si clicca sulla lettera gli articoli appaiono in ordine alfabetico aggiungendo "order by articoli.titolo":

RS.ActiveConnection = con
Dim lettera
lettera = Server.HTMLEncode(Request.QueryString("lettera"))
sqlString = "SELECT top 10* from articoli WHERE attivo = " & ok & " AND console = " & idr
If Len(Trim(lettera)) = 1 Then
sqlString = sqlString & " AND titolo LIKE '" & lettera & "%' order by articoli.titolo"
End If
RS.open sqlString, con, 1

Poi ho aggiunto top 10 per visualizzare solo dieci articoli, ma purtroppo appaiono solo i primi 10 e non gli ultimi ho provato ad aggiungere a ...& idr order by articoli.titolo desc" ma non funziona. Che devo fare??

Ciao Luke
 
Ultima modifica:

snakefrancesco

Utente Attivo
4 Mag 2008
33
0
0
Ho risolto tutto creando una nuova pagina chiamata archivio contenente la query di selezione. Ora è perfetto:)

Grazie ancora di tutto lukeonweb.
 

snakefrancesco

Utente Attivo
4 Mag 2008
33
0
0
Ciao a tutti oggi mi sono imbattuto in un errore, il mio sito contiene anche recensioni con il titolo che inizia per numero, quindi non viene elencato per lettera. Ho provato a fare così:

<a class="menualto" href="archiviotipo.asp?id=<%=request.querystring("id")%>&lettera=0">#</a>

ma nessun risultato.

cosa posso fare per farmi comparire gli articoli che iniziano per numero?

Il codice presente nella pagina che riceve l'id è questo:

Codice:
<%
Set RSa = Server.CreateObject("ADODB.Recordset")
RSa.ActiveConnection = con
sqlString = "select id from redazionale where lcase(nome) = '" & lcase(idx) & "'"
RSa.open sqlString
idr = rsa("id")
ok = -1
Set RS = Server.CreateObject("ADODB.Recordset")
RS.ActiveConnection = con
Dim lettera
lettera = Server.HTMLEncode(Request.QueryString("lettera"))
sqlString = "SELECT * from articoli WHERE attivo = " & ok & " AND redazionale = " & idr
If Len(Trim(lettera)) = 1 Then
sqlString = sqlString & " AND titolo LIKE '" & lettera & "%' order by articoli.titolo"
End If
RS.open sqlString, con, 1
while not rs.eof
foto = rs("foto11")
if foto = "" or isnull(foto) then 
foto = "vuota.jpg"
end if

Set RSb = Server.CreateObject("ADODB.Recordset")
RSb.ActiveConnection = con
sqlString = "select nome from console where id=" & rs("console")
RSb.open sqlString
%>

Ciao e grazie:elvis:
 
Discussioni simili
Autore Titolo Forum Risposte Data
A Errore visualizzazione selezione testo Photoshop 0
R Filtro multiplo di selezione Sql PHP 2
maxnegri [Javascript] TinyDatePicker data format e selezione progressiva. Javascript 0
M [PHP] Selezione da menu a discesa con 2 variabili PHP 0
V access 2007, maschera con caselle di selezione Programmazione 4
M [PHP] Selezione record da elenco PHP 24
Tommy03 [PHP] Errore query selezione avg PHP 0
G [ASP] Incrementare un valore on the fly su selezione select Classic ASP 3
W [PHP] Come far funzionare un form di selezione PHP 12
U [PHP] Selezione con menu a tendina e recupero selezione PHP 5
S [WordPress] [HTML] Bordo di selezione area - Link di ancoraggio WordPress 3
A [Javascript] Selezione dinamica video Javascript 0
A [Javascript] Selezione dinamica Javascript 27
F Alert selezione checkbox jQuery 6
gandalf1959 mysql, selezione dati ricorrenti più volte PHP 8
E [PHP] selezione automatica lingua PHP 14
S [PHP] Selezione dati con riferimento ad altra colonna tabella PHP 22
F Mantenere selezione immagine Javascript 1
N selezione elementi Javascript 0
asevenx Cerco plugin per gestire appuntamenti con agenda e campi di selezione WordPress 4
M Visualizzare tabella in base a selezione PHP 1
G L'interno della selezione non cambia Photoshop 1
M Cambiare valore ad un campo in base alla selezione fatta nel menu a tendina PHP 16
Marco_88 Verificare la selezione degli elementi dom jQuery 2
L Selezione dinamica da form. PHP 0
M selezione da più tabelle PHP 1
F Problema selezione dinamica select/jsp/mysql Javascript 0
L elenco file immagini con checkbox di selezione PHP 1
K errore durante la selezione del Database PHP 2
D Selezione di dati da più tabelle in Mysql PHP 3
L Selezione elementi nel menù in base ad una select jQuery 1
M [risolto] Passaggio valore tramite link per selezione dati su database. PHP 3
blips Update basato sulla selezione dell'utente PHP 0
A Visualizzare albero DOM completo oppure Visualizzare Nodi che fanno parte di una Selezione Javascript 6
C Sviluppo chat con particolari criteri di selezione per web-app su mobile Offerte e Richieste di Lavoro e/o Collaborazione 1
I Submit in base alla selezione PHP 1
P come gestire la selezione data PHP 40
S selezione di una foto di una photogallery PHP 4
F Problema con selezione di un file nel database PHP 5
U Estrazione dati da un db con un menu selezione in cascata PHP 6
I come posso creare una pagina di inserimento con selezione di mensilità? PHP 1
L Selezione da database con DropDown Menu e visualizzazione PHP 10
G selezione progressiva delle righe di una tabella Javascript 11
F Inserire voci di selezione PHP 3
valient13 option che si elimina alla selezione dell'altro PHP 6
D modifica query selezione PHP 38
coccobil SQL query con selezione multipla di LIKE PHP 6
P Come memorizzare le immaggino con selezione multipla PHP 2
S selezione regione provincia comune PHP 2
Monital Selezione nomi PHP 1

Discussioni simili