0

我正在尝试在 JSP 和 MySQL 中创建一个订单系统,我希望有人可以帮助我。

我希望能够在下订单时降低产品的库存水平。(即购买了 9* 16gb USB 闪存驱动器。在下订单时,SQL 查询检索当前级别 50 并减去订购数量 9 并使用新级别 41 更新数据库)。

我已经尝试过这个 JSP,但我无法让它工作。

<sql:query var="stockresult" scope="request" dataSource="jdbc/project">
  SELECT *
  FROM stocklevels
  WHERE productID = $param.productID
</sql:query>

$newstocklevel = stockresult - $orderqty;


<sql:update var="newstock" scope="request" dataSource="jdbc/project">
  UPDATE stocklevels
  SET stock=$newstocklevel
  WHERE productID = $param.productID
</sql:update>

有人可以帮忙吗?

谢谢

4

1 回答 1

1

这可能是您的解决方案,但强烈建议不要直接在 SQL 语句中插入请求参数。

<sql:query var="stockresult" scope="request" dataSource="jdbc/project">
   SELECT stock <!-- select the current stock -->
   FROM stocklevels
   WHERE productID = $param.productID
</sql:query>

<!-- calculate the new value from the first row of the query result -->
<c:set var"newstocklevel" value="${stockresult.rows[0].stock - orderqty}"/> 


<sql:update var="newstock" scope="request" dataSource="jdbc/project">
   UPDATE stocklevels
   SET stock=$newstocklevel
   WHERE productID = $param.productID
</sql:query>
于 2013-03-28T17:52:34.470 回答