6 messaggi dal 27 aprile 2006
Ragazzi.. grazie in anticipo per chi si interessa....
...
Ho un problema, anzi... non riesco a fare una cosa che magari è maledettamente semplice.
...
Premessa.... Nessun problema quando devo lavorare con un DB e con una tabella... Inserimento, cancellazione modifica e ricerca.. No Problem...
..
ECCO IL MIO PROBLEMA:
Ho l'esigenza che, nel momento che un utente si registri nel mio "sito" di annunci, scelga di quanti annunci egli voglia disporre.
Mettiamo l'ipotesi che i pacchetti di annunci siano 2 / 5 / 10.
L'utente sceglie di usufruire dell'opzione di usare 10 spazi a sua disposizione da gestire a suo piacimento.
Entrando nel suo pannello di controllo lui avrà la possibilità di visualizzare l'elenco degli annunci "SCELTI" (in questo caso 10) e quindi scegliere quale modificare a suo piacimento.
....
Arrivo al problema, come faccio a riempire un'altra tabella con la quantità di records scelti identificabili a quell'utente ??
Per cercare di farmi capire meglio,
Quando si registra i dati mi vanno in un DB nella tabella "utenti"...
..e sino qua tutto ok.... ma come faccio a fare in modo che i 10 records vuoti identificabili all'utente (tramite chiave relazionata)vengano creati automaticamente in un'altra tabella... se non addirittura in un'altro DB....
.. Quindi ... Come faccio a far scrivere automaticamente i 10 campi (o 5... o 2 ... secondo la scelta) nella nuova tabella???

AIUTO
Grazie in anticipo

bigpulce
Modificato da bigpulce il 27 aprile 2006 17.29 -
62 messaggi dal 14 febbraio 2001
www.frisullo.it
Ciao bigpulce,

non ti scriverò la sintassi, visto che conosci le operazioni base su un DB...

non appena inizia la "registrazione" di un nuovo Utente, con questo intendo dire che l'Utente ha inviato i dati presenti nel form e sono già stati fatti tutti i controlli sulla validità dei campi compilati.... dovrai fare attenzione affinchè le operazioni a questo punto, siano complete ..ossia il "buon fine" della transazione...

comunque.. predisponi il nuovo record per il nuovo utente, e -prima- di dare l'update, in una tabella relazionata CLIENTI_ANNUNCI, quindi una tabella avente come campi:
ID (chiave)
FK_Cliente (chiave esterna) che collegherà il record annucio al Cliente
... eventuali altri campi.. che all'assegnazione risulteranno vuoti..

in un ciclo
I=1 TO numero_annunci_richiesti
effettui un inserimento nella tabella CLIENTI_ANNUNCI
con FK_Cliente = ID_Cliente (appena assegnato)..


alla fine del ciclo salverai sia i records inseriti in CLIENTI_ANNUNCI, che quello inserito in CLIENTI...

ho risposto su quello che hai chiesto?... spero di si.

Ciao

Lucio
6 messaggi dal 27 aprile 2006
Gentilissimo Lucio,
credo proprio che tu abbia risposto al mio quesito....
...
Luci e ombre...
..
Gli eventuali 10 records (annunci) verranno creati in "CLIENTI_ANNUNCI" o devo predisporre una nuova tabella....
..
scusami....
.. ma evidentemente non sono così bravo...
..
non riesco far sì che si riesca a scrivere anche sull'altra tabella..
...

Se può servire posso mettere il codice digitato e funzionante fino ad ora....

Grazie mille

Bigpulce

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

<!--#include file="Connections/Conn_utenti.asp" -->
<%
' 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|mail|value|radiobutton|value"
MM_columnsStr = "USER|',none,''|PASS|',none,''|NOME|',none,''|COGNOME|',none,''|EMAIL|',none,''|ANNUNCI|none,none,NULL"

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
%>
Modificato da bigpulce il 28 aprile 2006 12.39 -
62 messaggi dal 14 febbraio 2001
www.frisullo.it
Bigpulce,

niente di difficile .. niente ombre...

adesso hai la Tabella CLIENTI, ti dovrai creare una Tabella CLIENTI_ANNUNCI con i campi che ti ho indicato per instaurare la relazione...

l'inserimento in CLIENTI già funziona.. giusto?..

supponiamo che il Cliente che stai per inserire abbia ID_Cliente = 181, questo significa che i records in CLIENTI_ANNUNCI nel campo FK_Cliente avranno il valore 181...

)così quando ti serviranno gli Annunci del Cliente 181, tramite una query al DB, recuperari gli annunci con FK_Cliente = 181... )

l'inserimento quindi in CLIENTI_ANNUNCI avverà con le stesse modalità con cui effettui quello in CLIENTI... l'unica differenza è che ne avrai da inserire 2/5/10 .. in base della scelta dell'Utente

...ti conviene tentare e sbagliare...con codice scritto da te.. ti aiuta capirai meglio..

saluti
Lucio

Lucio
6 messaggi dal 27 aprile 2006
Gentilezza infinita...
..
Ho realizzato la seconda tabella come mi hai segnalato..
... ma non riesco a scriverci dentro "già durante la registrazione"..
.. per assegnargli già i valori ...
Diciamo....
o scrivo nella tabella utenti.... o scrivo nella tabella che ho chiamato Spazio (creata come dici tu)...
..
Non riesco a scrivere in tutte e due "contemporaneamente"... Diciamo
..

Cmq scusa per il tempo che ti stò facendo perdere...
..
Ho scritto il codice con il quale scrivo nella tabella utenti.. ed è tutto Ok....
...

Per il momento cmq grazie....
..

bigpulce
6 messaggi dal 27 aprile 2006
...
Vi chiedo nuovamente scusa.....
...
NON RIESCO ....
... Scrivo nella prima tabella e sulla seconda non riesco a far accadere nulla.....
...
Il codice attuale è postato sopra....
......se ci fosse qualche d'uno che con due righe di codice ( e naturalmente me le spiega..) mi facesse fare lo step necessario...
..
Grazie in anticipo....

P.S... Lucio, sono sicuro che mi hai spiegato bene.... ma non ci riesco

Bigpulce

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.