Сложение через UPDATE
1.
Павел (14.10.2010 / 13:31)
Вот есть функция
function deliverProduct()
{
global $char, $la2ItemId, $productCount, $PRODUCT_LOCATION, $PRODUCT_COUNT_FACTOR;
if($PRODUCT_COUNT_FACTOR >= 1)
{
//Умножаем на фактор, если мы продаем продукт в пакетах
$productCount *= $PRODUCT_COUNT_FACTOR;
}
openItemsDBConnection();
$charSQL = mysql_real_escape_string($char);
$sql = "select login from accounts where LOWER(login) = LOWER('$charSQL')";
$nowvalue = mysql_query("select value from donate_credits where account = $charSQL");
setDBNames();
$result = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($result) != 1)
{
mysql_close();
error("Нет такого персонажа: $char");
}
$productCountSQL = mysql_escape_string($productCount);
$la2ItemIdSQL = mysql_escape_string($la2ItemId);
$sql = "
insert into donate_credits (account, value) values ('$char', '$productCountSQL')
ON DUPLICATE KEY UPDATE value=$nowvalue+$productCountSQL";
setDBNames();
$result = mysql_query($sql) or die(mysql_error());
mysql_close();
logOrder();
success();
}
Ну соответственно есть проблема)
check the manual that corresponds to your MySQL server version for the right syntax to use near 'id #7+1' at line 2.
Задача состоит в том чтобы апдейт не просто обновлял число на новое а складывал со старым) то есть было скажем 7, человек сделал заказ на 5 монет и на счете стало 13
2.
Павел (14.10.2010 / 14:13)
Тьфу ошибку сделал в вычислениях фу таким быть 7 плюс 5 равно 12
3.
ramzes (14.10.2010 / 20:20)
UPDATE table SET var = var + $add WHERE......;
4.
Павел (15.10.2010 / 00:02)
не катит, еще предложения?) Не пойму почему выборка переменной идет как id #7
5.
ramzes (15.10.2010 / 08:34)
как это не катит? у всех же катит. тип поля интегер?
проверяй что записанно в бл и откуда там #
6.
Павел (15.10.2010 / 12:33)
фишка в том что where не нужно, мы же оператор он дюпликейт используем....
Проблему решил) всем спасибо за помощь... Пришлось полностью переделать=)
URL:
https://visavi.net/topics/14617