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

    Registra carrello session nel database

    Salve a tutti!
    Ho un problema che mi perseguita da diversi giorni oramai.
    Premetto che non ho fatto molto spesso i carrelli ma adesso sono costretto a ferne uno lesto e buono.

    Allora....

    Ho già creato un carrello con un array di session ed ho il problema di registrarlo.

    Ecco il codice del carrello per registrarlo nel database

    connessione = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database\Prodotti.mdb")

    ' DEFINIZIONE DELLE COSTANTI
    const cartpid = 0
    const cartpname = 1
    const cartpprice = 2
    const cartpquantity = 3

    ' VISUALIZZAZIONE DEL CARRELLO DELLA SPESA

    if Not isArray(Session("cart")) then
    DIM localcart(4, 20)
    Else
    localcart = Session("cart")
    End If

    ' AGGIUNGO L'ORDINE NELLA TBELLA ORDINI

    dim rs
    set rs = server.CreateObject("ADODB.recordset")
    rs.Open "select * from Ordini", connessione, 1, 3
    rs.addnew
    rs("IDcliente") = session("idCliente")
    rs("Data") = Date()
    rs("Importo") = Request.Form("totale")
    rs.update
    rs.close
    set rs = nothing

    'MI PRENDO IL NUMERO DELL'ULTIMO ORDINE APPENA INSERITO

    dim rs1
    set rs1 = server.CreateObject("ADODB.recordset")
    rs1.Open "select * from Ordini order by idordine desc", connessione, 1, 3
    NumeroOrdine = rs1("idordine")
    rs1.close
    set rs1 = nothing

    'AGGIUNGO I FORM DELLA PAGINA PRECEDENTE NELLA TABELLA
    'PRODOTTIORDINATI COLLEGATA ALLA TABELLA ORDINI


    dim rs2
    set rs2 = server.CreateObject("ADODB.recordset")
    rs2.Open "select * from prodottiOrdinati", connessione, 2, 3
    rs2.addnew

    For i = 0 to Ubound(localCart, 2)
    a = 0
    if i <> Ubound(localCart, 2) then
    prodotto = request.form ("prodotto"&a )
    quantita = request.form ("id"&a)
    rs2("titolo") = prodotto
    rs2("descrizione") = quantita
    rs2.update
    a = a + 1
    end if
    next
    rs2.close
    set rs2 = nothing

    Response.Write("Tutto Fatto")

    %>

    Il problema è proprio nell'inserimento nell'ultima tabella.
    i form della pagina precedente si chiamano:
    prodotto0
    prodotto1
    prodotto2
    ... etc

    ora come faccio ad inserirli nel ciclo in modo tale da scrivere nel db tutti i prodotti ordinati?
    Dove sbaglio?

    Please Help ME

    Grazie in anticipo a tutti i professionisti del settore che mi risponderanno.
    :gren: Il riso abbonda sulla bocca di ....... Gerry Scotti :gren:

    ___________________________

    Meglio parlar poco e colpire ....
    ....che colpire non parlando affatto.

  2. #2

    Allora?

    Nessuno riesce ad aiutarmi?
    Problema troppo difficile?
    Help Me!

    Ripeto il mio problema...


    Salve a tutti!
    Ho un problema che mi perseguita da diversi giorni oramai.
    Premetto che non ho fatto molto spesso i carrelli ma adesso sono costretto a ferne uno lesto e buono.

    Allora....

    Ho già creato un carrello con un array di session ed ho il problema di registrarlo.

    Ecco il codice del carrello per registrarlo nel database

    connessione = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database\Prodotti.mdb")

    ' DEFINIZIONE DELLE COSTANTI
    const cartpid = 0
    const cartpname = 1
    const cartpprice = 2
    const cartpquantity = 3

    ' VISUALIZZAZIONE DEL CARRELLO DELLA SPESA

    if Not isArray(Session("cart")) then
    DIM localcart(4, 20)
    Else
    localcart = Session("cart")
    End If

    ' AGGIUNGO L'ORDINE NELLA TBELLA ORDINI

    dim rs
    set rs = server.CreateObject("ADODB.recordset")
    rs.Open "select * from Ordini", connessione, 1, 3
    rs.addnew
    rs("IDcliente") = session("idCliente")
    rs("Data") = Date()
    rs("Importo") = Request.Form("totale")
    rs.update
    rs.close
    set rs = nothing

    'MI PRENDO IL NUMERO DELL'ULTIMO ORDINE APPENA INSERITO

    dim rs1
    set rs1 = server.CreateObject("ADODB.recordset")
    rs1.Open "select * from Ordini order by idordine desc", connessione, 1, 3
    NumeroOrdine = rs1("idordine")
    rs1.close
    set rs1 = nothing

    'AGGIUNGO I FORM DELLA PAGINA PRECEDENTE NELLA TABELLA
    'PRODOTTIORDINATI COLLEGATA ALLA TABELLA ORDINI


    dim rs2
    set rs2 = server.CreateObject("ADODB.recordset")
    rs2.Open "select * from prodottiOrdinati", connessione, 2, 3
    rs2.addnew

    For i = 0 to Ubound(localCart, 2)
    a = 0
    if i <> Ubound(localCart, 2) then
    prodotto = request.form ("prodotto"&a )
    quantita = request.form ("id"&a)
    rs2("titolo") = prodotto
    rs2("descrizione") = quantita
    rs2.update
    a = a + 1
    end if
    next
    rs2.close
    set rs2 = nothing

    Response.Write("Tutto Fatto")

    %>

    Il problema è proprio nell'inserimento nell'ultima tabella.
    i form della pagina precedente si chiamano:
    prodotto0
    prodotto1
    prodotto2
    ... etc

    ora come faccio ad inserirli nel ciclo in modo tale da scrivere nel db tutti i prodotti ordinati?
    Dove sbaglio?

    Please Help ME

    Grazie in anticipo a tutti i professionisti del settore che mi risponderanno.
    :gren: Il riso abbonda sulla bocca di ....... Gerry Scotti :gren:

    ___________________________

    Meglio parlar poco e colpire ....
    ....che colpire non parlando affatto.

  3. #3
    :quote: Qualcuno riesce ad aiutarmi? :quote:
    Please......

    ... Help Me!
    :gren: Il riso abbonda sulla bocca di ....... Gerry Scotti :gren:

    ___________________________

    Meglio parlar poco e colpire ....
    ....che colpire non parlando affatto.

  4. #4
    A naso e al volo.........io credo che se il ciclo è

    for a=0 to dovevuoi

    poi la variabile
    "prodotto"&a
    quando a=1 (per esempio)
    non vale "prodotto1"
    visto che "prodotto1" è una stringa mentre a=1 è un int.......

    Penso che, se proprio vuoi conservare questa forma di operare, dovresti almeno prima fare un casting di a dai int a stringa.......

    Boh....prova!
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  5. #5
    questo è lo stesso ragionamento che avevo fatto io ma non so applicarlo come codice.

    con le mie variabili, sapresti consigliarmi il codice più opportuno?
    :gren: Il riso abbonda sulla bocca di ....... Gerry Scotti :gren:

    ___________________________

    Meglio parlar poco e colpire ....
    ....che colpire non parlando affatto.

  6. #6
    Ok, ho dato un'occhiata un po' meglio all'ultima parte (quella che aggiorna la tabella prodottiOrdinati e che dici che crea problemi.
    Supponendo quindi che il resto funzioni:

    1) devi portare
    a=0
    FUORI dal ciclo for, altrimenti ad ogni giro a ritorna a valere zero (anche se prima era stato incrementato) e quindi continuano a venire aggiunti prodotto0 e id0


    2) addNew invece va portato DENTRO il ciclo altrimenti dopo il primo aggiornamento il programma trova un'istruzione "update" senza avere prima trovato la relativa istruzione "addNew"

    Ho costruito velocemente un database con le necessarie caratteristiche, e un form di inserimento dove i vari input (nell'ambito dello stesso form) si chiamano appunto
    prodotto0 id0
    prodotto1 id1
    prodotto2 id2
    ecc..

    e funziona bene (il problema di a stringa o intero non esiste, almeno il programma gira comunque)

    Quindi, ritornando al tuo codice, l'ultima parte deve diventare:

    codice:
    dim rs2 
    set rs2 = server.CreateObject("ADODB.recordset") 
    rs2.Open "select * from prodottiOrdinati", connessione, 2, 3 
    
    a = 0
     
    For i = 0 to Ubound(localCart, 2) 
    if i <> Ubound(localCart, 2) then 
    
    rs2.addnew  
    
    prodotto = request.form ("prodotto"&a ) 
    quantita = request.form ("id"&a)
    rs2("titolo") = prodotto 
    rs2("descrizione") = quantita 
    rs2.update 
    a = a + 1 
    end if 
    next
    
    rs2.close 
    set rs2 = nothing 
    
    Response.Write("Tutto Fatto")
    Ok?
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  7. #7

    esatto!

    perfetto ... ho dimenticato di ringraziarti ....
    .... ho fatto come mi hai detto tu ed adesso tutto e ok!

    :gren: Il riso abbonda sulla bocca di ....... Gerry Scotti :gren:

    ___________________________

    Meglio parlar poco e colpire ....
    ....che colpire non parlando affatto.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.