我正在开发一个交易网站。用户将为某些产品发布一些价格,100美元,120美元。我希望显示该产品的最高价格,这意味着目前的最高价格将取代之前的最高价格。 mysql表是:
user_email //The user who gives price for the product
product//The product name
price//The prices that users posted
chosen//it will be 1 if it is highest otherwise 0
我想要做的是,如果用户为一本书预订了100美元,并且它目前是最高价格(为该用户选择了一个)并且网站显示它。另一个用户为该书发布了120美元,它现在是最高价格(选择为1),而之前用户的选择是0.我无法弄清楚如何比较某些产品的价格并更改所选择的所有较低价格0产品。我怎样才能做到这一点?对不起,我是新人:(
答案 0 :(得分:3)
您可以使用MySQL的MAX函数获取最大数量的colomn。示例:
SELECT MAX(field) FROM `table_name`
您只需添加WHERE即可限制搜索字段。
之后,你用这样的东西更新其他所有东西
UPDATE `table_name` SET `field` = 0 WHERE `product` = "X" AND `id` != Y
X将是产品ID,Y将是第一个查询中的ID。
答案 1 :(得分:1)
这样的事情对你有用,
$q = $dbc -> prepare("SELECT price FROM table_name ORDER BY price DESC LIMIT 1");
使用order by子句将获得可用的最高价格,现在将其存储在一个类似的变量中,
$q -> execute();
$highest = $q -> fetch(PDO::FETCH_ASSOC);
现在将所有其他用户的价格更改为零,
$q = $dbc -> prepare("UPDATE table_name SET price = 0 WHERE price != ?");
$q -> execute(array($highest));
现在,这将消除对数据库中所选列的需求,因为您只需要出价的最高价格,可以使用上述查询的反面与BID ID的另一个参数轻松找到。
这个例子正在使用PDO,我强烈建议你做一个交易网站,我希望这是你想要实现的目标,
快乐编码,