在PHP中的特定行之后循环并更新MySQL

时间:2015-01-19 18:00:05

标签: php mysql

我正在开发一款允许玩家将物品存储在MySQL数据库中的游戏。我有一张桌子可以存放每个球员的物品。它基于插槽,每个项目都具有唯一值。 所以表格会有: id,itemvalue,slot,playerID。

我试图在PHP中找到一种允许玩家撤回或存放特定位置中的项目的方法。

在采取行动(撤回或存款)后,我需要帮助更新条目。 例如: 假设玩家可以自己拥有10个位置。 如果播放器从插槽4中撤回一个项目,我该如何从插槽5到10循环其项目并将其值更新为-1。

当然,我从表中获取信息,让我们称之为" ItemTable"使用:

$sql = mysql_query("SELECT * FROM ItemTable WHERE playerID ='$_playerID' ORDER BY id ASC LIMIT 10");

2 个答案:

答案 0 :(得分:1)

类似的东西:

UPDATE ItemTable SET slot=slot-1 WHERE playerID='$_playerID' AND slot>$withdrawnItemSlot

这应该将所有其他项目混合在一个插槽中。

答案 1 :(得分:0)

会是这样的:

"SELECT * FROM ItemTable WHERE id > (SELECT itemID FROM ItemTable WHERE playerID='$_playerID') t2 ORDER BY id ASC LIMIT 10"

我的意思是更新,你这样做:

"UPDATE ItemTable WHERE id > (SELECT itemID FROM ItemTable WHERE playerID='$_playerID') t2 SET (here you go with your updates) ORDER BY id ASC LIMIT 10"

(不确定在这种情况下是否应该选择select,如果它不起作用,只需从上面的查询中删除“t2”)