Invio Ordini

  • Creatore Discussione Creatore Discussione chycky
  • Data di inizio Data di inizio
Secondo me risolvi cosi:
Nel db inserisci un campo associato al prodotto comperato dove inserirai il codice ordine(presumo tu l'abbia gia fatto).
Appena l'utente si logga controlli se nel carrello ci sono prodotti associati all'utente x vedere se l'utente ha lasciato a metà un ordine.
Se ha lasciato a metà un ordine setti il codice ordine = al valore nel database in modo ke l'ordine continua dall'ultima volta...
Se invece non ci sono puo cominciare un ordine nuovo...a questo punto crei il codice ordine ma come dice Lukeonweb non scartare la possibilità ke possa creartelo uguale...quindi ke ne so...una volta inviato l'ordine lo elimini dal carrello e lo copi in un altra tabella ordini del db poi quando crei il codice ordine gli dici ke deve essere diverso da quelli gia memorizzati nella tabella ordini
Facci sapere:fonzie:
 
grazie metalgemini,

proverò.... vediamo che caspita uscirà fuori....:fonzie:

anche se mi sono abbastanza confuso...cmq

a dopo
 
In sostanza:

Devi realizzare una tabella Carrello collegata (molti a molti) con la Tabella Prodotti, le chiavi sono dunque esterne!
Il ciò si spiega con:
un prodotto puó far parte di più ordine e un ordine può éssere associato a più ordini...

Spero tu abbia già buttato giú un minimo schizzo del diagramma Entità Relazioni...
Quindi come detto le chiavi saranno su una tabella che contiene semplicemente l'Id_Ordine e l'Id_prodotto.

Secondo me la tabella Carrello puó essere evitata se carichi tutto già come ordine provvisorio nella tabella Ordini!
Nel senso carichi già le righe dell'ordine nella tabella ordine ma con un Flag apposito...ad esempio P (provvisorio) e D (definitivo). Quando l'utente conferma l'ordine tutte le righe che gli appartengono conteneti P diventano D!

Credo che questa sia la soluzione ottimale!
Mi faresti vedere l'entità relazioni che hai fatto? Magari c'è qualcosa da modificare. :byebye:
 
chycky ha scritto:
grazie metalgemini,

proverò.... vediamo che caspita uscirà fuori....:fonzie:

anche se mi sono abbastanza confuso...cmq

a dopo

Dai non è difficile...ti faccio un esempio pratico del DB:

------------------------------------------------------------
Tabella Prodotti:

ID:1
NomeProdotto: Quaderno1
Descrizione:Quaderno...1
Prezzo:2,00
_______________________
ID:2
NomeProdotto: Quaderno2
Descrizione:Quaderno...2
Prezzo:3,00
------------------------------------------------------------
Facciamo fare un acquisto all'utente Ciccio
(nel senso ke inserirà questi dati nel DB):

Tabella Carrello:

IdOrdine: valoreunivoco1
IdPrdotto: 2
IdUtente: "Ciccio" (oppure l'id numerico)
___________________________________

IdOrdine: valoreunivoco1
IdPrdotto: 1
IdUtente: "Ciccio" (oppure l'id numerico)

E se adesso l'utente Ciccio si scollega senza inviare l'ordine?
Semplice:controlli x prima cosa se nella tabella Carrello ci sono ordini relativi all'utente collegato:
Facciamo l'esempio di Ciccio:

Set RsNumeroOrdine = Server.CreateObject("ADODB.Recordset")
Sql= "SELECT IdOrdine FROM carrello WHERE IdUtente = 'Ciccio' "
If RsNumeroOrdine.Eof = False then 'quindi se ci sono ordini in
sospeso
NumeroOrdine = RsNumeroOrdine("IdOrdine") 'questo lo userai
x continuare l'ordine
else
Generi un nuovo codice stando attento ke non l'hai gia
generato prima

End IF

Beh spiegarlo qui non è ke sia il massimo:D spero cmq di essere stato abbastanza chiaro;)
Facci sapere:)
 
Ultima modifica:
ciao metalgemini,

tutto chiaro adesso.....:D

sicuramente uscira un buon lavoro... a dopo:)
 

Discussioni simili