Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    accesso "multilivello" particolare...

    Vi disturbo per una richiesta personale.....
    ... Parto dal concetto che grazie ai tutorial asp + Dreamweaver mi sono potuto sbizzarrire ad arricchire le pagine del mio sito...
    ...
    Bando alle ciance..
    Ho un problema.... ed una esigenza...
    ...
    Vi spiego..
    La mia famiglia possiede un franchising immobiliare e stò creando un portalino per loro.
    Il portalino permette agli affiliati di usufruire di spazi per gestire i propri annunci.
    Ogni affiliato dovrebbe avere la scelta di accedere a 5 spazi, 10 spazi, 15 spazi o 20 spazi per i propri annunci a seconda del tipo di affiliazione.
    ...
    Ora arrivo al problema...
    Nessun problema nella registrazione dell'utente (ho una prima tabella nel database chiamata T_clienti dovo ho un ID come contatore e poi tutti i campi di interesse per la registrazione dell'utente)....che è perfettamente funzionante...
    ... Vorrei che, quando un utente si registra e scelga il pacchetto di spazi più conveniente a lui (5-10-15-20), automaticamente si generassero i record vuoti in una seconda tabella del database (ho chiamato la seconda tabella T_annunci) legati proprio all'utente appena registrato in maniera che quando lui, appena terminata la registrazione accede al suo pannello di controllo, avrà a video l'elenco dei suoi annunci (ovviamente al primo accesso si verificherà che ogni record "annuncio" è vuoto) e possa accedere e modificare gli annunci di suo interesse...
    ...
    Potreste aiutarmi..???
    ..
    Se serve posso postare tutto il codice "funzionante" per l'inserimento dati nella prima tabella (registrazione)...

    Grazie in anticipo

  2. #2
    Alla fine della procedura di registrazione/validazione del nuovo utente puoi semplicemente fare un AddNew sul recordset della tabella "T_annunci" per un numero di volte pari a 5, oppure a 10, etc... in funzione del suo livello di affiliazione.

    Immaginando che il tipo dati contenuto nel campo principale di "T_annunci" sia di tipo Text, puoi fare l'AddNew inserendo un blank in questo campo. Ovviamente se ci sono altri campi nella tabella, fai attenzione che non abbiano valori required (oppure in questo caso verifica che assumano un valore di default in automatico da access), altrimenti nell'update darà errore.

    Quando poi gli utenti andranno a riempirsi il campo in T_annunci, il nuovo valore sovrascriverà questo blank iniziale.

  3. #3
    una soluzione è quella che ti hanno già detto...solo che in dreamweaver non ho idea di come si faccia...per cui spero che tu abbia anche imparato asp nel frattempo...

    dovrebbe essere una cosa del tipo:
    codice:
    numInserzioni=5 (o 10,15,20)
    
    for i=1 to numInserzioni
    sql="insert into tabella(campi) values(valori)
    conn.execute(sql)
    next

  4. #4
    Grandissimo.......Come soluzione mi sembra appropriata...
    ...
    ma come faccio a dire al secondo recordset "automaticamente" di creare 5 add new, 10 add new...etc.....

    io ti posto il codice adoperato sino ad ora....
    .. se tu puoi....
    .. scrivere le due righette di codice in maniera di capirle.... te ne sarei grato...
    .....

    Grazie in anticipo.....


    ECCOLO: (Fino ad ora tutto OK..scrivo nella tabella "utenti".. vorrei scrivere nella tabella "spazi"..)


    <%
    ' Dichiaro Variabili

    Dim MM_editAction
    Dim MM_abortEdit
    Dim MM_editQuery
    Dim MM_editCmd

    Dim MM_editConnection
    Dim MM_editTable
    Dim MM_editRedirectUrl
    Dim MM_editColumn
    Dim MM_recordId

    Dim MM_fieldsStr
    Dim MM_columnsStr
    Dim MM_fields
    Dim MM_columns
    Dim MM_typeArray
    Dim MM_formVal
    Dim MM_delim
    Dim MM_altVal
    Dim MM_emptyVal
    Dim MM_i

    MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
    If (Request.QueryString <> "") Then
    MM_editAction = MM_editAction & "?" & Server.HTMLEncode(Request.QueryString)
    End If

    MM_abortEdit = false

    MM_editQuery = ""
    %>

    <%
    ' Reindirizzamento se username esiste
    MM_flag="MM_insert"
    If (CStr(Request(MM_flag)) <> "") Then
    MM_dupKeyRedirect="index.asp"
    MM_rsKeyConnection=MM_Conn_utenti_STRING
    MM_dupKeyUsernameValue = CStr(Request.Form("User"))
    MM_dupKeySQL="SELECT USER FROM Utenti WHERE USER='" & Replace(MM_dupKeyUsernameValue,"'","''") & "'"
    MM_adodbRecordset="ADODB.Recordset"
    set MM_rsKey=Server.CreateObject(MM_adodbRecordset)
    MM_rsKey.ActiveConnection=MM_rsKeyConnection
    MM_rsKey.Source=MM_dupKeySQL
    MM_rsKey.CursorType=0
    MM_rsKey.CursorLocation=2
    MM_rsKey.LockType=3
    MM_rsKey.Open
    If Not MM_rsKey.EOF Or Not MM_rsKey.BOF Then

    ' username trovato - non posso scrivere
    MM_qsChar = "?"
    If (InStr(1,MM_dupKeyRedirect,"?") >= 1) Then MM_qsChar = "&"
    MM_dupKeyRedirect = MM_dupKeyRedirect & MM_qsChar & "requsername=" & MM_dupKeyUsernameValue
    Response.Redirect(MM_dupKeyRedirect)
    End If
    MM_rsKey.Close
    End If
    %>

    <%
    ' Inserimento record - variabili

    If (CStr(Request("MM_insert")) = "form1") Then

    MM_editConnection = MM_Conn_utenti_STRING
    MM_editTable = "Utenti"
    MM_editRedirectUrl = "index.asp"
    MM_fieldsStr = "User|value|Pass|value|nome|value|cognome|value|ma il|value|radiobutton|value"
    MM_columnsStr = "USER|',none,''|PASS|',none,''|NOME|',none,''|COGN OME|',none,''|EMAIL|',none,''|ANNUNCI|none,none,NU LL"

    MM_fields = Split(MM_fieldsStr, "|")
    MM_columns = Split(MM_columnsStr, "|")

    ' settaggio dei valori presi dal form
    For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
    Next

    If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
    If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
    MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
    Else
    MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
    End If
    End If

    End If
    %>

    <%
    ' Inserimento record - esecuzione della scrittura nel DB

    Dim MM_tableValues
    Dim MM_dbValues

    If (CStr(Request("MM_insert")) <> "") Then

    MM_tableValues = ""
    MM_dbValues = ""
    For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_formVal = MM_fields(MM_i+1)
    MM_typeArray = Split(MM_columns(MM_i+1),",")
    MM_delim = MM_typeArray(0)
    If (MM_delim = "none") Then MM_delim = ""
    MM_altVal = MM_typeArray(1)
    If (MM_altVal = "none") Then MM_altVal = ""
    MM_emptyVal = MM_typeArray(2)
    If (MM_emptyVal = "none") Then MM_emptyVal = ""
    If (MM_formVal = "") Then
    MM_formVal = MM_emptyVal
    Else
    If (MM_altVal <> "") Then
    MM_formVal = MM_altVal
    ElseIf (MM_delim = "'") Then ' escape quotes
    MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
    Else
    MM_formVal = MM_delim + MM_formVal + MM_delim
    End If
    End If
    If (MM_i <> LBound(MM_fields)) Then
    MM_tableValues = MM_tableValues & ","
    MM_dbValues = MM_dbValues & ","
    End If
    MM_tableValues = MM_tableValues & MM_columns(MM_i)
    MM_dbValues = MM_dbValues & MM_formVal
    Next
    MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"

    If (Not MM_abortEdit) Then

    Set MM_editCmd = Server.CreateObject("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_editConnection
    MM_editCmd.CommandText = MM_editQuery
    MM_editCmd.Execute
    MM_editCmd.ActiveConnection.Close

    If (MM_editRedirectUrl <> "") Then
    Response.Redirect(MM_editRedirectUrl)
    End If
    End If

    End If
    %>

  5. #5
    non so a chi dicevi...cmq:

    nel form avrai un campo dal quale il tizio scegli il numero di inserzioni, giusto?

    magari è questa select:
    codice:
    <select name="inserzioni">
    <option value="5">5</option>
    <option value="10">10</option>
    <option value="15">15</option>
    <option value="20">20</option>
    </select>
    allora nella tua pagina, dopo la registrazione dell'utente, metti:

    codice:
    dim numInserzioni,conn
    numInserzioni=request.form("inserzioni")
    
    set conn=server.createObject("adodb.connection")
    conn.open MM_Conn_utenti_STRING 
    
    for i=1 to numInserzioni
    sql="insert into tabella(campi) values(valori)"
    conn.execute(sql)
    next
    
    conn.close: set conn=nothing

  6. #6
    Gentilissimo Santino....
    .... Ueeee Ueeee...
    .. non riesco....
    ... Scrive sempre e solo nella prima tabella.....
    .. nella seconda neppure per idea....
    ...
    ECCO IL CODICE IMPLEMENTANDO IL TUO SCRIPT:

    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

    <%

    Dim MM_editAction
    Dim MM_abortEdit
    Dim MM_editQuery
    Dim MM_editCmd

    Dim MM_editConnection
    Dim MM_editTable
    Dim MM_editRedirectUrl
    Dim MM_editColumn
    Dim MM_recordId

    Dim MM_fieldsStr
    Dim MM_columnsStr
    Dim MM_fields
    Dim MM_columns
    Dim MM_typeArray
    Dim MM_formVal
    Dim MM_delim
    Dim MM_altVal
    Dim MM_emptyVal
    Dim MM_i

    MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
    If (Request.QueryString <> "") Then
    MM_editAction = MM_editAction & "?" & Server.HTMLEncode(Request.QueryString)
    End If

    MM_abortEdit = false

    MM_editQuery = ""
    %>

    <%
    MM_flag="MM_insert"
    If (CStr(Request(MM_flag)) <> "") Then
    MM_dupKeyRedirect="index.asp"
    MM_rsKeyConnection=MM_Conn_utenti_STRING
    MM_dupKeyUsernameValue = CStr(Request.Form("User"))
    MM_dupKeySQL="SELECT USER FROM Utenti WHERE USER='" & Replace(MM_dupKeyUsernameValue,"'","''") & "'"
    MM_adodbRecordset="ADODB.Recordset"
    set MM_rsKey=Server.CreateObject(MM_adodbRecordset)
    MM_rsKey.ActiveConnection=MM_rsKeyConnection
    MM_rsKey.Source=MM_dupKeySQL
    MM_rsKey.CursorType=0
    MM_rsKey.CursorLocation=2
    MM_rsKey.LockType=3
    MM_rsKey.Open
    If Not MM_rsKey.EOF Or Not MM_rsKey.BOF Then
    MM_qsChar = "?"
    If (InStr(1,MM_dupKeyRedirect,"?") >= 1) Then MM_qsChar = "&"
    MM_dupKeyRedirect = MM_dupKeyRedirect & MM_qsChar & "requsername=" & MM_dupKeyUsernameValue
    Response.Redirect(MM_dupKeyRedirect)
    End If
    MM_rsKey.Close
    End If
    %>

    <%
    If (CStr(Request("MM_insert")) = "form1") Then

    MM_editConnection = MM_Conn_utenti_STRING
    MM_editTable = "Utenti"
    MM_editRedirectUrl = "index.asp"
    MM_fieldsStr = "User|value|Pass|value|nome|value|cognome|value|ma il|value|inserzioni|value"
    MM_columnsStr = "USER|',none,''|PASS|',none,''|NOME|',none,''|COGN OME|',none,''|EMAIL|',none,''|ANNUNCI|none,none,NU LL"

    MM_fields = Split(MM_fieldsStr, "|")
    MM_columns = Split(MM_columnsStr, "|")

    For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
    Next

    If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
    If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
    MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
    Else
    MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
    End If
    End If

    End If
    %>

    <%
    Dim MM_tableValues
    Dim MM_dbValues

    If (CStr(Request("MM_insert")) <> "") Then

    MM_tableValues = ""
    MM_dbValues = ""
    For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_formVal = MM_fields(MM_i+1)
    MM_typeArray = Split(MM_columns(MM_i+1),",")
    MM_delim = MM_typeArray(0)
    If (MM_delim = "none") Then MM_delim = ""
    MM_altVal = MM_typeArray(1)
    If (MM_altVal = "none") Then MM_altVal = ""
    MM_emptyVal = MM_typeArray(2)
    If (MM_emptyVal = "none") Then MM_emptyVal = ""
    If (MM_formVal = "") Then
    MM_formVal = MM_emptyVal
    Else
    If (MM_altVal <> "") Then
    MM_formVal = MM_altVal
    ElseIf (MM_delim = "'") Then
    MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
    Else
    MM_formVal = MM_delim + MM_formVal + MM_delim
    End If
    End If
    If (MM_i <> LBound(MM_fields)) Then
    MM_tableValues = MM_tableValues & ","
    MM_dbValues = MM_dbValues & ","
    End If
    MM_tableValues = MM_tableValues & MM_columns(MM_i)
    MM_dbValues = MM_dbValues & MM_formVal
    Next
    MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"

    If (Not MM_abortEdit) Then
    Set MM_editCmd = Server.CreateObject("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_editConnection
    MM_editCmd.CommandText = MM_editQuery
    MM_editCmd.Execute
    MM_editCmd.ActiveConnection.Close

    If (MM_editRedirectUrl <> "") Then
    Response.Redirect(MM_editRedirectUrl)
    End If
    End If

    End If
    %>

    <head>
    <title>Documento senza titolo</title>
    </head>

    <body>
    <form id="form1" name="form1" method="POST" action="<%=MM_editAction%>">
    <label>
    <input name="User" type="text" id="User" />
    </label>
    USER



    <input name="Pass" type="password" id="Pass" />
    PASSWORD</p>



    <input name="nome" type="text" id="nome" />
    NOME</p>



    <input name="cognome" type="text" id="cognome" />
    COGNOME</p>



    <input name="mail" type="text" id="mail" />
    E-MAIL</p>



    <select name="inserzioni">
    <option value="5" selected="selected">5</option>
    <option value="10">10</option>
    <option value="15">15</option>
    <option value="20">20</option>
    </select>
    N&deg; ANNUNCI </p>



    <input type="submit" name="Submit" value="Invia" />
    </p>
    <input type="hidden" name="MM_insert" value="form1">
    </form>
    <%
    dim numInserzioni,conn
    numInserzioni=request.form("inserzioni")

    set conn=server.createObject("adodb.connection")
    conn.open MM_Conn_utenti_STRING

    for i=1 to numInserzioni
    sql="insert into Spazio (FK_clienti,USER) values(vuoto)"
    conn.execute(sql)
    next

    conn.close: set conn=nothing
    %>

    </body>
    </html>

  7. #7
    lo devi mettere prima di
    codice:
    If (MM_editRedirectUrl <> "") Then
    Response.Redirect(MM_editRedirectUrl)
    End If
    e invece di values(vuoto) ci devi mettere
    codice:
    ".... values(''," & id_del_cliente & ")"
    dove a posto dell'id_del_cliente ci devi mettere la variabile che contiene l'id del cliente..se sai qual'è sei bravo che con tutto quel codice dw di mer.a non ci capisco una mazza

  8. #8
    Perfetto....
    ....
    Funziona se i valori li metto io....
    ...
    ma come dicevi tu....
    .. non riesco a trovare la variabile id utente o un'altra variabile (anche user andrebbe bene) da utilizzare...
    ...
    Incredibile...
    ..l'unica che funziona è MM_i (ma mi restituisce un valore numerico fisso di 12).....
    ....
    Cmq....
    appena trovo la variabile... ( e mi sà che è impossibile per me) .... mi hai risolto il problema...
    .. FACENDOMI ADDIRITTURA CAPIRE L'ISTRUZIONE...
    ..
    Grazie

  9. #9
    grazie mille...
    ...
    Dopo ore di pensiero.... ( e di prove)
    ...
    Ecco finalmente la soluzione....
    codice:
    dim numInserzioni,conn
    numInserzioni=request.form("inserzioni")
    
    set conn=server.createObject("adodb.connection")
    conn.open MM_Conn_utenti_STRING 
    
    for i=1 to numInserzioni
    sql="insert into Spazio (USER) values('"&request.form("User")&"')"
    conn.execute(sql)
    next
    
    conn.close: set conn=nothing
    Grazie per la strada che mi hai spianato

    bigpulce

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.