Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Estrazione per lettere

  1. #1
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499

    Estrazione per lettere

    Ho ripreso un mio vecchio codice che permetteva di estrarre dei record in base alla loro prima lettere del nome; quindi utilizzavo
    codice:
    questaPagina = request.serverVariables("PATH_INFO")
    for x = 65 to 90
    response.write "" & chr(x) & ""
    next
    per mostrare tutte le lettere dell'alfabeto per poi creare la query che mi andava ad estrarre i record con nomecampo LIKE lettera.

    Vorrei fare in modo che:
    - al primo ingresso della pagina, vengano estratti tutti i record. ed in cima alla lista mostrare tutte le lettere dell'alfabeto, ma rendendo cliccabili solo quelle che darebbero risultato. Quindi se ho una lista di 100 reorcd che hanno come campo 'nome' che inizia per le lettere C, F, H, Y, V, Z, scriverò tutte le lettere ma solo queste saranno cliccabili per estrarmi poi, solo i record con quella iniziale.

    Come posso far riconoscere questo?

  2. #2
    codice:
    dim array_alfabeto
    array_alfabeto=array("A","B","C","D",....)
    
    
    set conn=server.createobject("adodb.connection")
    conn.open ...
    
    for i=0 to ubound(array_alfabeto)
    
    
    set rs=conn.execute("select top 1 id from tuatabella where ucase(titolo) like '" & array_alfabeto(i) & "%'")
    
    if not rs.eof then
    response.write "" & array_alfabeto(i) & "& n b s p ;"
    else
    response.write array_alfabeto(i)
    end if
    
    set rs=nothing
    next
    il resto a te

  3. #3
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    in questa maniera bisogna fare tante query quante sono le lettere dell'alfabeto...
    si potrebbe fare con una query sola
    codice:
    query = "SELECT DISTINCT UCase(LEFT(NomeCampo,1)) AS iniziale FROM NomeTabella"
    set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open query,Conn,3,3
    strLettere=""
    if not rs.EOF then strLettere=rs.GetString()
    rs.Close
    sep=""
    for x = 65 to 90
      lettera = chr(x)
      if InStr(strLettere,lettera)>0 then
        Response.Write sep & "" & lettera & ""
      else
        Response.Write sep & lettera
      end if
      sep = " - "
    next

  4. #4
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Funzionano benissimo entrambe, ma la seconda forse è più pratica, grazie mille!
    Perfetto, funziona proprio bene!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.