Сложение через UPDATE

Печать RSS
230

Автор
Чатланин
0
Вот есть функция
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
Изменил: Павел (14.10.2010 / 13:36)
Автор
Чатланин
0
Тьфу ошибку сделал в вычислениях фу таким быть 7 плюс 5 равно 12smile

2000 лет д.н.э.
0
UPDATE table SET var = var + $add WHERE......;
Автор
Чатланин
0
не катит, еще предложения?) Не пойму почему выборка переменной идет как id #7

2000 лет д.н.э.
0
как это не катит? у всех же катит. тип поля интегер?
проверяй что записанно в бл и откуда там #
Автор
Чатланин
0
фишка в том что where не нужно, мы же оператор он дюпликейт используем....
Проблему решил) всем спасибо за помощь... Пришлось полностью переделать=)
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск