我正在开发一款允许玩家将物品存储在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");
答案 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”)