目前,我在MySQL中插入一些值时遇到了一些问题。
我有一张桌子:bidder
Columns
id type run_id min_bid max_bid插入min_bid和max_bid时出现问题。我正在使用post方法获取这些内容。重点是,由于我有不同的投标人类型,我可能需要一个投标人的多个值,或者我可能只需要一个值。
我设置了不同的post值,以便区分需要保存1个值或2个值时的不同之处。
这是$_POST的var_dump()
array(5) {
["get_bid0"] => string(1) "5"
["get_bid1"] => string(1) "6"
["get_bid_low2"] => string(1) "7"
["get_bid_high2"]=> string(2) "11"
["get_bids"]=> string(8) "Set Bids"
} 因此,表bidder必须像这样保存:
+-----------------------------------------------+
| id | type | run_id | min_bid | max_bid |
+-----------------------------------------------+
| 1 | steadybid | 1 | 5 | 5 |
| 2 | steadybid | 1 | 6 | 6 |
| 3 | random | 1 | 7 | 11 |
+-----------------------------------------------+除了min_bid和max_bid之外,其他都已经设置好了。
我所能想到的就是一大堆if语句。
注意:投标人的id可能不是连续的,因为投标人可以通过单击按钮来删除。因此,在投标人id 3之后,下一个id可能是5而不是4。
有什么想法吗?
发布于 2014-04-24 16:57:13
部分解决了我自己的答案:
我必须为每个包含相同run id的投标人id执行foreach循环:
$strSql = 'select id from bidder where run_id='. $this->getRunId().';';
$arrIdBidders = $objDatabase->queryresult($strSql);我必须将steadybids的名称更改为与帖子中的随机出价相同的名称,这样我就可以使用以下foreach循环。
foreach($arrIdBidders as $bidderkey => $key) {
$biddernumber = $bidderkey + 1;
$strSql = 'update bidder set min_bid = '.$arrBids['get_bid_low'.$biddernumber].'
where id = '. $arrIdBidders[$bidderkey]['id'].';';
$blnOke = $objDatabase->query($strSql);
}
foreach($arrIdBidders as $bidderkey => $key) {
$biddernumber = $bidderkey + 1;
$strSql = 'update bidder set max_bid = '.$arrBids['get_bid_high'.$biddernumber].' where id = '. $arrIdBidders[$bidderkey]['id'].';';
$blnOke = $objDatabase->query($strSql);
}希望这对某些人有帮助,并感谢你的想法。
https://stackoverflow.com/questions/23262886
复制相似问题