как упростить этот запрос на обновление базы данных (php) - PullRequest
3 голосов
/ 24 апреля 2010

Как я могу упростить эту инструкцию по обновлению? Каждый раз, когда клиент покупает товар, он обновляет продажи на 1.

$this->db->query('SELECT amount FROM shop_items WHERE itemid='.$itemid.'');   
$new_amount = $item->amount+1;
    if(!$this->db->query('UPDATE shop_items SET amount='.$new_amount.' WHERE itemid='.$itemid.'')):
    return false;
    endif;

Разве я не могу сделать это проще, чтобы было меньше строк, например:

if(!$this->db->query('UPDATE shop_items SET amount=_current_value_+1 WHERE itemid='.$itemid.'')):
return false;
endif;

это возможно? если нет, то все равно спасибо

1 Ответ

6 голосов
/ 24 апреля 2010

А как насчет использования следующего SQL-запроса:

update shop_items
set amount = amount + 1
where itemid = 123

В основном, только в одном запросе SQL вы устанавливаете amount в предыдущее значение, которое он имел, плюс один.
Нет необходимости в двух запросах; -)


Интеграция этого в ваш PHP-код должна дать вам что-то похожее на это:

if (!$this->db->query('UPDATE shop_items SET amount=amount+1 WHERE itemid='.$itemid.'')) :
    return false;
endif;

Примечание: я просто заменил ваш _current_value_ на имя поля, над которым вы работаете: amount.

...