出价最高

时间:2018-12-12 04:09:20

标签: php mysql

我有一个为拍卖应用程序编写的查询。但是我面临的问题是特定商品的出价最高。

下面是我的查询:

$query = "SELECT  auctions.auctionId, quantity, startPrice, reservePrice, startTime,
endTime, itemName, itemBrand, itemDescription, items.image, auctions.views,
item_categories.categoryName as subCategoryName, superCategoryName,
item_categories.superCategoryId, item_categories.categoryId,
users.userId, users.firstName, users.lastName, bids.userId AS mbid,
conditionName, countryName, COUNT(DISTINCT (bids.bidId)) AS numBids,
COUNT(DISTINCT (auction_watches.watchId)) AS numWatches,
MAX(bids.bidPrice) AS highestBid, MAX(bids.bidPrice)as currentPrice,
case
    when highestBidderId = bids.userId THEN true
    else false
end as isUserWinning

FROM auctions

LEFT OUTER JOIN bids ON bids.auctionId = auctions.auctionId
LEFT OUTER JOIN auction_watches ON auction_watches.auctionId = auctions.auctionId
JOIN items ON items.itemId = auctions.itemId
JOIN users ON items.userId = users.userId
JOIN item_categories ON items.categoryId = item_categories.categoryId
JOIN super_item_categories ON  item_categories.superCategoryId = super_item_categories.superCategoryId
JOIN item_conditions ON items.conditionId = item_conditions.conditionId
JOIN countries ON users.countryId = countries.countryId

WHERE auctions.endTime > now() AND auctions.auctionId IN ( SELECT bids.auctionId 
FROM bids where bids.userId = bids.userId GROUP BY bids.auctionId)
GROUP BY  auctions.auctionId,bids.userId
ORDER BY endTime ASC";

现在,如果我使用此条件确定出价最高的人,我将获得

  

出价过高,请再次竞标!所有项目。

if($row['endTime'] >= $now){
    if($row['isUserWinning']){?>
        <p class="alert-success" style="padding: 7px 7px; border-radius: 3px;">Currently the highest bidder!</p> <?php
    }else{?>
        <p class="alert-warning" style="padding: 7px 7px; border-radius: 3px;">Outbidded, bid again to win!</p> <?php
    }
}

我做错了什么或如何解决?

0 个答案:

没有答案