Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Select su nominativi

  1. #1

    Select su nominativi

    Ho un problema che non so come poter risolvere. Vi spiego!
    Ho una tabella di access che contiene 2 campi Nome e Lettera (di inizio del nome) e vorrei creare una pagina asp nella quale nella parte superiore ci sono tutte le lettere, e sotto una tabella.
    cliccando su una delle lettere, dovrebbe avvenire la select sulla tabella e visualizzare nella tabella a riempimento sottostante i cognomi che iniziano con quella lettera.

    Avreste per caso uno script già fatto da modificare o potreste darmi indicazioni di dove cercarlo o scaricarlo o come realizzare il tutto?

    GRAZIE anticipatamente!

  2. #2
    Il campo LETTERA è inutile. La lettera iniziale del nome ce l'hai già sul campo NOME.
    codice:
    sql = "SELECT DISTINCT(LEFT(nome,1)) AS lett FROM nomeTabella GROUP BY LEFT(nome,1) ORDER BY LEFT(nome,1)"
    Qui leggi il campo alias di nome lett
    codice:
    if not rs.eof then
    do until rs.eof
    response.write "" & rs("lett") & " "
    rs.moveNext
    loop
    end if
    Poi la query per leggere i nomi in base alla lettera è passata via queryString:
    codice:
    lett = request.queryString("lett")
    if len(lett) > 0 then
    sql = "SELECT * FROM nomeTabella WHERE nome LIKE '" & lett & "%'"
    ...
    ...
    end if
    Tutto nella stessa pagina.

  3. #3
    si, ok.
    ma come saffio a selezionare la lettera che mi serve?
    potresti essere più chiaro?

    se non ti dispiace potresti descrivermi sinteticamente la struttura che dovrò usare per combinare HTML e SCRIPT di ASP?

    GRAZIE!


  4. #4
    codice:
    <%
    lett = request.queryString("lett")
    
    set conn = server.createObject("ADODB.Connection")
    conn.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.mapPath("\samples\mdb-database\database.mdb")
    
    	sql = "SELECT DISTINCT(LEFT(nome,1)) AS lett FROM nomi GROUP BY LEFT(nome,1) ORDER BY LEFT(nome,1)"	
    	set rs = conn.execute(sql)
    	
    		if not rs.eof then
    			do until rs.eof
    				response.write "" & rs("lett") & " "
    				rs.moveNext
    			loop
    		end if
    	
    	rs.close
    	set rs = nothing
    	
    	if len(lett) = 1 then
    		
    		sql = "SELECT nome FROM nomi WHERE nome LIKE '" & lett & "%' ORDER BY nome"
    		set rs = conn.execute(sql)
    		
    			if not rs.eof then
    				response.write "<ul>" & vbCrLf
    				do until rs.eof
    					response.write "[*]" & rs("nome") & "" & vbCrLf
    					rs.moveNext
    				loop
    				response.write "[/list]" & vbCrLf
    			end if
    		
    		rs.close
    		set rs = nothing
    		
    	end if
    
    conn.close
    set conn = nothing
    %>
    A me funziona e alla perfezione.
    Vediamo se sai farlo funzionare...

  5. #5
    si ma per la selezione delle lettere come si fa?

  6. #6
    Originariamente inviato da EdmontDantes
    si ma per la selezione delle lettere come si fa?
    Nell'esempio c'è già.

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.