Quote:
Originally Posted by Mikesch01
Prüf als erstes ob es schon einen Eintrag mit dieser ItemID gibt. (SELECT)
Dann mittels Code entscheidest du eben ob du ein INSERT oder UPDATE Befehl ausführen willst.
|
Dessen bin ich mir bewust frage ist nur wie setze ich das um .
hier einmal mehr vom code
Code:
mp.events.add("server:inventory:setDestroyItem", (player, itemId) => {
if (mp.players.exists(player)) player.setVariable("destroyItemId", itemId);
});
mp.events.add("server:inventory:setGiveItem", (player, itemId) => {
if (mp.players.exists(player)) player.setVariable("giveItemId", itemId);
});
mp.events.add("inputValueShop", (player, trigger, output) => {
if (mp.players.exists(player)) {
if (trigger === "DestroyItem") {
var itemId = player.getVariable("destroyItemId");
gm.mysql.handle.query("SELECT id, amount FROM user_items WHERE id = ? AND charId = ?", [itemId, player.data.charId], function(err, res) {
//gm.mysql.handle.query("INSERT INTO user_items (id,charId,itemId,amount) VALUES('',?,?,?)", [currentTarget.data.charId, item.itemId, newGivenUserAmount], function(err3, res3) {
// ON DUPLICATE KEY UPDATE c1 = VALUES(c1) + 1;
gm.mysql.handle.query("INSERT INTO lager (`charId`,`itemId`,`amount`) SELECT charId,itemId,1 FROM user_items WHERE id = ? AND charId = ? ", [itemId, player.data.charId], function (err2,res2) {
if (err) console.log("Error in Get Destroy Item Query: " + err);
else {
if (res.length > 0) {
res.forEach(function(item) {
if (parseInt(item.amount) >= parseInt(output)) {
if (output > 0) {
if (parseInt(item.amount) == parseInt(output)) {
gm.mysql.handle.query("DELETE FROM user_items WHERE id = ? AND charId = ?", [itemId, player.data.charId], function(err2, res2) {
if (err2) console.log("Error in Destroy Item Query: " + err2);
else {
player.notify("Du hast den Gegenstand weggeworfen.");
mp.events.call("server:inventory:prepareMenu", player);
}
});
} else {
var newAmount = parseInt(parseInt(item.amount) - parseInt(output));
gm.mysql.handle.query("UPDATE lager SET amount = ? WHERE id = ?", [newAmount, itemId], function(err3, res3) {
if (err3) console.log("Error in Destroy Item Query 3: " + err3);
else {
player.notify("Du hast den Gegenstand weggeworfen.");
mp.events.call("server:inventory:prepareMenu", player);
}
});
}
} else {
player.notify("Du kannst nicht weniger als 1 Wegwerfen.");
}
} else {
player.notify("So viel hast du nicht von diesem Gegenstand!");
}
});
} else {
player.notify("Du besitzt diesen Gegenstand nicht.");
}
}
});
});
mit ON DUPLICATE KEY UPDATE itemId = VALUES(amount) + 1
Code:
gm.mysql.handle.query("INSERT INTO lager (`charId`,`itemId`,`amount`) ON DUPLICATE KEY UPDATE itemId = VALUES(amount) + 1 SELECT charId,itemId,1 FROM user_items WHERE id = ? AND charId = ? ", [itemId, player.data.charId], function (err2,res2) {
habe ich es versucht dann pasiert leider garnichts mehr