Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870

    Select secondo livelli di autorizzazione.

    Buongiorno al forum; ho delle difficoltà con una select che preleva i dati da un db access 2000 e che ne popola una seconda con una query inner join fra due tabelle, a secondo dei livelli di autorizzazione.

    La query inner join funziona bene quando il livello di autorizzazione è base, ad esempio l'utente Pippo vedrà nella prima select:

    1-Pippo

    Nella seconda select:

    Pippo1
    Pippo2
    Pippo3
    Pippo4


    Mentre quando il livello di autorizzazione è da amministratore (vede tutto di tutti), nella prima select avrò:

    1-Pippo
    2-Tizio
    3-Caio
    4-Sempronio

    nella seconda select avrò:

    Sempronio1
    Sempronio2
    Sempronio3
    Sempronio4

    Vorrei che quando seleziono 1-Pippo dalla prima select, la seconda mi restituisca:

    Pippo1
    Pippo2
    Pippo3
    Pippo4

    Come posso risolvere?
    Grazie a tutti.

  2. #2
    Utente di HTML.it L'avatar di Umanista
    Registrato dal
    Jan 2002
    Messaggi
    1,022
    Devi mettere delle condizioni nella stringa SQL.
    Se l'utente è un amministratore selezioni tutto, altrimenti aggiungi una clausola WHERE per filtrare i risultati.

  3. #3
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Originariamente inviato da Umanista
    Devi mettere delle condizioni nella stringa SQL.
    Se l'utente è un amministratore selezioni tutto, altrimenti aggiungi una clausola WHERE per filtrare i risultati.
    Scusa non ti seguo... queste sono le select:
    codice:
    <%             
    
    'FACCIO POPOLARE LA PRIMA SELECT  
    ' SE UTENTE DIVERSO DA AMMINISTRATORE
    
    if utente <> 22 then
    sql = "SELECT ... INNER JOIN ..."            
    Set rec = Server.CreateObject("ADODB.Recordset")
    rec.Open sql, cn, 3, 3
    Do While Not rec.EOF
    nome = rec("nome")
    id = rec("id")
    %>
    <option	value="<%=rec.Fields.Item("id").Value%>-<%=rec.Fields.Item("nome").Value%>"
    <%=rec.Fields.Item("id").Value%>-<%=rec.Fields.Item("nome").Value%></option>
    <%
    rec.MoveNext
    Loop
    
    else
    
    'UTENTE AMMINISTRATORE
    sql = "SELECT ..."
    Set rec = Server.CreateObject("ADODB.Recordset")
    rec.Open sql, cn, 3, 3
    Do While Not rec.EOF
    nome = rec("nome")
    id = rec("id")
    %>
    <option	value="<%=rec.Fields.Item("id").Value%>-<%=rec.Fields.Item("nome").Value%>"
    <%=rec.Fields.Item("id").Value%>-<%=rec.Fields.Item("nome").Value%></option>
    <%
    rec.MoveNext
    Loop
    end if
    
    rec.Close
    set rec = Nothing
    %> </select>
    
    <%  
    'FACCIO POPOLARE LA SECONDA SELECT
    'SE UTENTE DIVERSO DA AMMINISTRATORE 
    
    if utente <> 22 then
    sql = "SELECT * FROM ... INNER JOIN ..."            
    Set rec = Server.CreateObject("ADODB.Recordset")
    rec.Open sql, cn, 3, 3
    Do While Not rec.EOF
    %><option value="<%=rec.Fields.Item("personale").Value%>"
    <%
    rec.MoveNext
    Loop
    
    else 
    
    'UTENTE AMMINISTRATORE
    
    sql = "SELECT * FROM ...." 
    Set rec = Server.CreateObject("ADODB.Recordset")
    rec.Open sql, cn, 3, 3
    Do While Not rec.EOF
    %><option value="<%=rec.Fields.Item("personale").Value%>"
    <%= rec.Fields.Item("personale").Value%></option>
    <%
    rec.MoveNext
    Loop
    end if
    
    %></select>
    c0sa devo fare????

  4. #4
    Utente di HTML.it L'avatar di Umanista
    Registrato dal
    Jan 2002
    Messaggi
    1,022
    Non c'è bisogno che istanzi sempre il recordset e la connessione...
    Basta lavorare con le condizioni solo sulla stringa sql

    quindi per esempio

    If amministratore Then
    sql = "SELECT * FROM tabella"
    Else
    sql = "SELECT * FROM tabella WHERE ..."
    End If

  5. #5
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    si capisco... ma per avere nella seconda select i valori associati alla prima select? per farti un esempio è come in questo forum quando nel Box "vai al forum" selezioni una voce e vieni rispedito alla pagina da te richiesta... qui invece dovrebbe soltanto aggiornare i valori nella seconda select...

  6. #6
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    up

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.