This is the complex part - you must make sure everyone's bids are correct, update those that have proxy bids, reallocate lots to winners, notify buyers who have been outbid, and perform some upkeep.
First let's look at the code to add a bid.
Function DoBid(ItemID, BidderID, Price, optional MaxPrice, optional MaxItems)
'Set variables and create objects strConnectionString = "DSN=MyAuction;UID=username;PWD=password;Database=MyAuctionDB" set rst = Server.CreateObject("ADODB.Recordset")
'Check to see if a bid already exists for this buyer and auction strSQL = "SELECT BID FROM tblAuctionBids WHERE IID = " & ItemID & " AND " & _ "UID = " & BidderID rst.open strSQL, strConnectionString
if rst.eof then 'A bid does not exist rst.close 'Insert info into table strSQL = "INSERT INTO tblAuctionBids (IID, UID, WinPrice, MaxBid, " & _ "BidItems, WinItems, Time VALUES (" & ItemID & ", " & BidderID & _ ", '" & Price & "', '" & MaxPrice & "', " & MaxItems & _ ", 0, '" & Now() & "')" 'Default WinItems to 0 for now
else 'A bid does exist rst.close 'Update info in table strSQL = "UPDATE tblAuctionBids SET WinPrice = '" & Price & _ "' WHERE IID = " & ItemID & " AND UID = " & BidderID end if
rst.open strSQL, strConnectionString
''Fix bidding information call ResolveBids(ItemID)
End Function
NOTE: This code above is developed for Visual Basic, and the keyword "optional" in the function opener is not supported in VBScript. In an ASP then, simply leave out the keyword "optional" here, and when you call the function, pass in an empty string, i.e.:
call DoBid(ItemId, BidderID, Price, "", "")
This function basically takes some info, and either inserts it or updates it in the Bids table - fairly simple stuff. The function ResolveBids however is where all the good stuff happens.